在屏幕上显示fgetc的结果作为字符

时间:2009-12-25 08:33:02

标签: c

我正在尝试调试以下代码:

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”中读取的字符,然后才能得到错误(所以我可以理解读取文件的哪个部分是错误位置),但这是一个整数。

是否有可能以某种方式在屏幕上作为角色打印?

由于

4 个答案:

答案 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都采用整数参数。