fscanf没有读任何东西

时间:2013-06-12 17:10:34

标签: c file

我正在尝试从文件中读取整数,而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 并未给出正确的预期答案。

2 个答案:

答案 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"