C语言文件输出问题,我的fprintf函数没有办法把数据输入到文件中,我用的是C free

#include<stdio.h>

struct Airplane
{
char NO[20];
char UpPlace[20];
char DownPlace[20];
char UpTime[20];
char DownTime[20];
int Num;
int Price;
};
int main()
{
FILE *fp;
fp = fopen("D:\\airplane\\1.in","a+");
struct Airplane air[3];
for(int i = 0;i < 2;++i)
fscanf(fp,"%s%s%s%s%s%d%d",air[i].NO,air[i].UpPlace,air[i].DownPlace,air[i].UpTime,air[i].DownTime,&air[i].Price,&air[i].Num);
scanf("%s%s%s%s%s%d%d",air[2].NO,air[2].UpPlace,air[2].DownPlace,air[2].UpTime,air[2].DownTime,&air[2].Price,&air[2].Num);
fprintf(fp,"\n%s %s %s %s %s %d %d",air[2].NO,air[2].UpPlace,air[2].DownPlace,air[2].UpTime,air[2].DownTime,air[2].Price,air[2].Num);
printf(" 航班号 起飞地 抵达地 起飞时间 抵达时间 价格 剩余人数 \n");
for(int i = 0;i < 3;++i)
printf(" %-9s%-9s%-11s%-11s%-11s%-7d%-11d\n",air[i].NO,air[i].UpPlace,air[i].DownPlace,air[i].UpTime,air[i].DownTime,air[i].Price,air[i].Num);
fclose(fp);

}
路径没有错,文件里的数据如下:
SQ801 BeiJing Singapore 00:05 06:25 1290 30
9C8992 BeiJing ShangHai 06:45 08:55 860 30

fopen函数中的mode错误.
请将a+换成r然后fscanf. 否则fscanf的内容是错误的.
然后fclose
然后再fopen并且使用a+

至于后缀名称, 没有关系的. 它除了让程序人员分类文件及帮助操作系统选择程序来打开文件外, 没有意义.追问

谢谢你,确实可以了,如果可以我顺便问一个,什么是fopen函数中的mode错误,我刚刚接触,通过网络找东西,查答案的能力不强,还在努力,不想当伸手党

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-05-08
有后缀名是.in的文件吗,我改成我的目录【"plane.txt"】,在dev-C++下编译运行,没问题
相似回答