C通过char读取文件char并在控制台上显示它

时间:2016-03-22 13:37:36

标签: c

在下面的代码中,我试图通过char读取文件char并在控制台上显示每个char:

#include <stdio.h>
#pragma warning(disable:4996)
int main(){

    FILE *file;
    file = fopen("input.txt", "r");
    int c;
    while ((c = fgetc(file)) != EOF)
    {
        printf("%c ",(char)c );
    }

    return 0;
}

我收到以下错误:

enter image description here

有人可以帮我解决这个问题吗?

2 个答案:

答案 0 :(得分:6)

你必须检查fopen的结果。指针文件为NULL,因为打开失败。

file = fopen("input.txt", "r");

if (file == NULL)
{
    //error
}

答案 1 :(得分:2)

弹出窗口上的消息: Expression:(stream!= NULL)是关键。 在使用返回的流fopen()之前检查file的结果。

作为fgetc()的替代方案,您也可以考虑使用:

while(fscanf(fp,"%c",&c) == 1)

while(fscanf(fp,"%c",&c) != EOF)

fgetc返回EOF。 fscanf()返回分配的输入项目数,如果在进行任何转换之前发生故障,则返回EOF。