我正在尝试调试以下代码:
int check_file(FILE* file)
{
int c;
int nl = '\n';
while((c = fgetc(file)) != EOF)
{
if (c == nl) return 0;
}
printf("\n ERROR EOF \n");
return 1;
}
当它收到错误并返回1时,我想知道原因。
我想在屏幕上打印变量“c”中读取的字符,然后才能得到错误(所以我可以理解读取文件的哪个部分是错误位置),但这是一个整数。
是否有可能以某种方式在屏幕上作为角色打印?
由于
答案 0 :(得分:2)
printf(“%c \ n”,c);
答案 1 :(得分:1)
您不知道自己收到了错误。最有可能的是,您只是到达文件的末尾。你应该调用feof()或ferror()来确定为什么fgetc()不再返回数据。
答案 2 :(得分:1)
您的循环终止于文件结束(EOF),并且,虽然您可以打印之前读取的字符,但这通常对您没有帮助。如果你想在EOF做一些不同的事情,那就去做吧。换句话说:如果EOF是一个错误,那么“文件的哪个部分”总是在最后。
要从整数中获取字符,请使用(char)some_int
,要输出字符,请使用[f] putc或printf("%c", some_int)
。
答案 3 :(得分:1)
putc和fputc都采用整数参数。