在C語言中,getchar()
函數用于從標準輸入(通常是鍵盤)讀取一個字符
getchar()
之前,可以使用fflush(stdin)
清空輸入緩沖區。這將確保getchar()
從下一個字符開始讀取,而不是返回之前的換行符或回車符。#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
int main() {
char input;
bool valid_input = false;
printf("請輸入一個字符:");
while (!valid_input) {
input = getchar();
if (input != '\n' && input != '\r') {
valid_input = true;
} else {
printf("輸入無效,請重新輸入一個字符:");
while ((input = getchar()) != '\n' && input != '\r'); // 清空輸入緩沖區
}
}
printf("您輸入的字符是:%c\n", input);
return 0;
}
#include <stdio.h>
#include <stdbool.h>
int main() {
char input;
bool valid_input = false;
printf("請輸入一個字符:");
while (!valid_input) {
input = getchar();
if (input != '\n' && input != '\r') {
valid_input = true;
} else {
printf("輸入無效,請重新輸入一個字符:");
}
}
printf("您輸入的字符是:%c\n", input);
return 0;
}
這兩種方法都可以幫助您在C語言中處理getchar()
函數的錯誤輸入。