一个简单但头痛了C编程问题

来源:百度知道 编辑:UC知道 时间:2024/06/09 05:50:26
#include <stdio.h>
main()
{
char s;
while(1)
{
printf("gg");
scanf("%c",&s);
printf("hh");
if(s=='e') break;
}
}
结里却是:
ggx //x是任意输入的
hhgghhgg
问题是第二次循环到scanf时,我还没有输入,它就跳过这次的scanf了!

输入char型数据时,不是以回车作为间隔符号的,因为回车也是一个char型数据。所以你第二次scanf读到了一个回车,所以就跳过去了!
可以这样:
while(1)
{
printf("gg");
scanf("%c",&s);
fflush(stdin);
printf("hh");
if(s=='e') break;
}

你scanf("%c",&s);前加一个fflush(stdin);试一下。