1

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

4

2 回答 2

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.

于 2013-06-12T17:16:06.787 回答
2

"w+"实际上打开文件进行读写。但是,文件被截断为0长度。
这可能是打印空行的原因。
尝试"r+"(打开文件进行读写,不截断)或"r".

于 2013-06-12T17:29:06.937 回答