【发布时间】:2013-06-12 17:10:33
【问题描述】:
我正在尝试从文件中读取整数,而 fscanf 不能很好地处理此代码。
fp=fopen("record.dat","r");
if(fp==NULL)
{
printf("Another reading error");
}
else
{
printf("\nstarting to read\n");
i=0;
while(i<10)
{
if(fscanf(fp,"%d",&temp)>0)
printf("%d\n",temp);
i++;
}
fclose(fp);
}
该文件包含 10 个由换行符分隔的数字。此代码不会产生或打印任何东西。代码有什么问题,请帮助我。
编辑 w+ 或 r 的访问模式没有给我一个正确的预期答案。
【问题讨论】:
-
@BLUEPIXY w+ 是读写模式。它有什么区别?我也试过了。结果没有差异。
-
如果您无法在“r”模式下阅读,我认为文件中的格式不同。
-
@max 它的不同之处在于
"w+"将您的文件截断为 0 长度的位,在这种情况下,任何在您先写入内容之前从文件中读取内容的尝试都将无法产生有用的结果. -
哦,文件的内容已经丢失了。