[英]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.