我正在尝试从文件中读取整数,而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 并未给出正确的预期答案。
答案 0 :(得分:3)
您将文件作为可写文件打开而不是可读。
您必须将"w+"
更改为"r"
w+ The file is created if it does not exist, otherwise it is truncated. The stream is positioned at the beginning of the file.
答案 1 :(得分:2)
"w+"
实际上会打开文件进行读写。但是,文件被截断为0
长度
这可能是打印空白行的原因
尝试"r+"
(打开文件进行读写,不截断)或"r"
。