当前位置: 代码迷 >> C语言 >> 高手请进
  详细解决方案

高手请进

热度:309   发布时间:2005-04-10 18:57:00.0
高手请进
main(){char t=' y';
while(t!='n'){
printf("y,n?");
t=getchar();}
结果每次输入y时都打出两个y,n?,也就是说循环两遍.这是为什么?
----------------解决方案--------------------------------------------------------
我明白这是因为输入回车的事,可是怎么让它循环一遍呢
----------------解决方案--------------------------------------------------------
printf("y n");
必定输出y n   跟循环次数应该没关系吧
----------------解决方案--------------------------------------------------------

这个问题楼上的说对了,因为对于getchar提取字符时从输入流中提取所以由于回车也是字符,明显不是‘n’所以就会输出来两次,可以添加fflush(stdin ); #include <stdio.h>

void main() { char ch = 'y';

while ( ch != 'n' ) { printf( "y,n?" ); ch = getchar(); fflush( stdin ); } }


----------------解决方案--------------------------------------------------------

加上一个清流函数就可以了 #include <stdio.h>

void main() { char t='y'; while(t!='n') { printf("y,n?\n"); t=getchar(); fflush(stdin);//加上一个清流函数就可以了 } }


----------------解决方案--------------------------------------------------------
  相关解决方案