这个程序似乎并不在 while 循环的每次迭代中接受输入,理想情况下它应该接受。但是,当我用 %d 替换 scanf() 函数的 %c 参数时(即整数输入而不是char 输入)似乎工作得非常好,while 循环的每次迭代都接受该输入。为什么我会看到这种差异?
int main()
{
char grade;
int i=0;
while(i<10){
printf("Enter ur grade\n");
scanf("%c", &grade);
switch(grade){
case 'A' : printf("U R THE BEST\n");
break;
case 'B' : printf("U R VERY GOOD DUDE...\n");
break;
case 'C' : printf("U R GOOD DUDE...\n");
break;
case 'D' : printf("U R Not good DUDE...\n");
break;
case 'E' : printf("U R WORST DUDE...\n");
break;
default : printf("U r AWESOME...\n");
break;
}
i++;
}
最佳答案
试试这个:在 %c
之前加一个空格,因为它也存储 \n
。
scanf(" %c", &grade);
关于C:循环内的 scanf(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26145634/