高手请进
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);//加上一个清流函数就可以了 } }
----------------解决方案--------------------------------------------------------