在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()
函数的错误输入。