fscanf读入数据为空怎么回事
[code=C/C++][/code]#include <stdio.h>
int main()
{
int x,i,a,b,c;
FILE *myfile;
a=1;b=2;c=3;
//注意要在程序同一个目录下新建一个 1.txt ,里面有少于 MAX_N 个数据,
//如只有3个数据: 1 2 3
if((myfile=fopen("1.txt","w+"))==NULL)
fprintf(myfile,"%D %D %D",a,b,c);
for(i=1;i<=6;i++)
{
fscanf(myfile,"%d\n",&x);printf("%d\n",x);
}
return 0;
}
运行结果如下
-858993460
fscanf读入数据为空是怎么回事??
[解决办法]
有两个错误:1.
if((myfile=fopen("1.txt","w+"))==NULL)
fprintf(myfile,"%D %D %D",a,b,c);
这句是如果无法打开文件,则向文件写入内容,所以打开文件成功时并未写入文件
改一下:
if((myfile=fopen("1.txt","w+"))==NULL)
{
printf("Ops!Cann't open file!\n");
exit(0);
}
fprintf(myfile,"%D %D %D",a,b,c);
2.for语句前加上:fseek(myfile,0,0);将文件指针指向文件头部。如果写入文件成功,则从文件头读取。
还有,如果以"w+"方式打开文件,是不需要事先新建的。希望帮到你。