当初始用户输入为“\ n”C时使用getchar()

时间:2015-10-21 05:31:18

标签: c getchar

使用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()的用法和逻辑。

1 个答案:

答案 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
   }