簡體   English   中英

在屏幕上將fgetc的結果顯示為字符

[英]Show results of fgetc as character on screen

我正在嘗試調試以下代碼:

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”中讀取的字符,然后得到錯誤(這樣我就可以理解錯誤所在的讀取文件的哪一部分),但這是一個整數。

是否可以某種方式在屏幕上作為字符打印?

謝謝

printf(“%c \\ n”,c);

您不知道自己遇到了錯誤。 最有可能的是,您即將到達文件末尾。 您應該調用feof()或ferror()以確定fgetc()為什么不返回更多數據。

您的循環終止於文件結尾(EOF),盡管您可以打印之前讀取的字符,但這通常無濟於事。 如果要在EOF上執行其他操作,請執行此操作。 換句話說:如果EOF是一個錯誤,則“在文件的哪一部分”總是結尾。

要從整數獲取字符,請使用(char)some_int ,要輸出字符,請使用[f] putc或printf("%c", some_int)

putc和fputc都采用整數參數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM