以下代码的输出对我来说非常奇怪。任何人都可以解释一下为什么它的表现如此?
#include<stdio.h>
int main()
{
int i=0;
char ch='a';
while(ch!='q')
{
scanf("%c",&ch);
printf("\t%d\n",i);
i++;
}
}
输出
答案 0 :(得分:0)
在scanf
声明之后写下此声明。
while( getchar() != '\n' ); /* flush to end of input line */
下次循环执行时,它会自动从standard input buffer中获取字符,因此您必须在每scanf
后清除它,以便它不可用于下一个{{1} }}。这是由我上面的代码行完成的。