使用getchar()方法将字符值设置为指定的用户输入时,用户可能决定不输入任何内容,但仍然按Enter键。有没有办法检查字符值是否为“\ n”?
// for example:
printf("input y/n\n");
char inp;
// the user hits enter before entering any value
inp = getchar();
getchar();
while (inp != 'y' && inp != 'n') {
inp = getchar();
getchar();
}
if (inp == 'y') {
printf("+\n");
} else {
printf("-\n");
}
示例输入/输出
案例1
'ENTER' 键
yy
导致: +
案例2
'ENTER' 键
ÿ
ÿ
yy
导致: +
案例3
'ENTER' 键
ÿ
'ENTER' 键
y
导致: +
有人愿意解释这些案件吗?作为一个不熟悉c但在java中相对经验丰富的人,我很想理解getchar()的用法和逻辑。
答案 0 :(得分:1)
请删除第二个getchar()
// the user hits enter before entering any value
inp = getchar();
//getchar(); // this getchar() is not needed
也在
while (inp != 'y' && inp != 'n') {
inp = getchar();
// getchar(); // this getchar() is not needed
}