在 Linux 中,getchar()
函數用于從標準輸入(通常是鍵盤)讀取一個字符
getchar()
函數在成功讀取到一個字符時返回該字符,否則返回 EOF
。你可以檢查返回值是否為 EOF
,以確定是否發生了異常情況。#include<stdio.h>
int main() {
int c;
printf("Enter a character: ");
c = getchar();
if (c == EOF) {
printf("An error occurred while reading the input.\n");
} else {
printf("You entered: %c\n", c);
}
return 0;
}
ferror()
和 clearerr()
函數:ferror()
函數用于檢查流(如標準輸入)是否發生了錯誤,clearerr()
函數用于清除流的錯誤狀態。#include<stdio.h>
int main() {
int c;
printf("Enter a character: ");
c = getchar();
if (ferror(stdin)) {
printf("An error occurred while reading the input.\n");
clearerr(stdin); // 清除錯誤狀態
} else {
printf("You entered: %c\n", c);
}
return 0;
}
feof()
函數:feof()
函數用于檢查流是否已到達文件末尾。當 getchar()
返回 EOF
且 feof()
返回非零值時,表示已到達文件末尾。#include<stdio.h>
int main() {
int c;
printf("Enter a character: ");
c = getchar();
if (feof(stdin)) {
printf("End of file reached.\n");
} else if (ferror(stdin)) {
printf("An error occurred while reading the input.\n");
clearerr(stdin); // 清除錯誤狀態
} else {
printf("You entered: %c\n", c);
}
return 0;
}
請注意,這些示例代碼僅適用于 C 語言。如果你使用其他編程語言,請參考相應語言的文檔以獲取處理異常情況的方法。