首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

写一个简单的while循环,出了个有关问题

2013-08-01 
写一个简单的while循环,出了个问题void main(){char ay while (a y){printf(相等\n)scanf(%c

写一个简单的while循环,出了个问题
void main(  )
{
char a='y' ;
while (a == 'y')
{
    printf("相等\n");
    scanf("%c",&a) ;
}
}

代码想实现每次循环后,等待用户输入确定是否继续循环,但运行结果只能输入一次,到第二次循环就退出了!
运行结果:
相等
y
相等
退出程序.....

[解决办法]

scanf("%c",&a)
改成
scanf(" %c",&a)

%前加一个空格
[解决办法]
至于楼上的写法,在%前加空格就是为了避免读入回车或换行
[解决办法]
缓冲区问题。在scanf后面加上
fflush(stdin);
作用是:刷新缓冲区即可。
[解决办法]
主要是 你回车符,也算是一个字符,于是程序读取了回车符.
[解决办法]
楼上的大神们都说对了,是缓冲区有个回车没有读走,
可在你原有代码scanf下面再加两行


scanf("%*[^\n]");//定位到换行符
scanf("%*c");//读走换行符


这样,问题亦可迎刃而解。
[解决办法]
给lz个建议


char ch;
while(1)
{
   scanf("%c", &ch);
   fflush(stdin);
   if(ch != 'y')
      break;
}

[解决办法]
第二次输入时被认为是回车符

热点排行