<span style="font-size:18px;">#include<stdio.h>
void main()
{
char ch;
printf("Please input a string with a # in the end!\n");
scanf("%c",&ch);
while(ch!='#')
{
printf("%2c",ch);
scanf("%c",&ch);
}
printf("\n");
}</span>
以前输入输出字符串都是用“%s”,在这个例子中用的是“%c”。其实,用这种发放第一次遇到scanf也需要把字符串的所有内容都输入进来,并以“#”结尾。后续遇到scanf时不用字输入,直接就会出现运行结果。
出现这种情况的原因是,第一次输入了很多字符,而scanf一次只能读取一个,所以就把第一个读入,后面的字符都在缓存中,遇到第二个scanf时,因为缓存中还有字符,所以不需要外界输入,直到遇到“#”时。