首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

fscanf读入数据为空咋回事

2012-09-25 
fscanf读入数据为空怎么回事[codeC/C++][/code]#include stdio.hint main(){int x,i,a,b,cFILE *myfil

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+"方式打开文件,是不需要事先新建的。希望帮到你。

热点排行