【发布时间】:2011-03-24 01:02:14
【问题描述】:
嗨 刚开始为uni学习c(通常使用objective c)并且遇到了scanf的一个奇怪问题,我有以下代码
while(stringCheck == 0){
scanf("%c",&computerType);
computerType = toupper(computerType);
if ( computerType == 'L') {
/*set stringCheck to 1 so the scanf while loop breaks*/
stringCheck = 1;
counter = 0;
} else {
printf("ERROR\n");
}
}
这我打印出“错误”然后要求输入(所以它第一次跳过了 scanf 语句)。如果我将它更改为另一个字符串变量,它可以正常工作,它会在第一次停止。
代码的其余部分工作正常,只是它一进入令人讨厌的循环就会打印一个错误。
我试过getChar(),它做同样的事情。
感谢您提供的任何帮助。
【问题讨论】:
-
我没有跳过。但是,如果不是“L”,它会为我输入的每个字符打印一次“ERROR\n”。
-
你能给我们完整的源代码吗?我认为在此处显示的代码之前调用了另一个输入函数,它将字符留在缓冲区中。
标签: c