| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 522 人关注过本帖
标题:高手请进
只看楼主 加入收藏
simpley
Rank: 1
等 级:新手上路
帖 子:262
专家分:0
注 册:2005-2-23
收藏
 问题点数:0 回复次数:4 
高手请进
main(){char t=' y';
while(t!='n'){
printf("y,n?");
t=getchar();}
结果每次输入y时都打出两个y,n?,也就是说循环两遍.这是为什么?
2005-04-10 18:57
simpley
Rank: 1
等 级:新手上路
帖 子:262
专家分:0
注 册:2005-2-23
收藏
得分:0 
我明白这是因为输入回车的事,可是怎么让它循环一遍呢

myQQ::445750010
2005-04-10 19:14
poppylx
Rank: 1
等 级:新手上路
帖 子:367
专家分:0
注 册:2004-9-27
收藏
得分:0 
printf("y n");
必定输出y n   跟循环次数应该没关系吧

动于心而静如水
2005-04-10 21:29
时空之蕊
Rank: 2
等 级:新手上路
威 望:3
帖 子:691
专家分:0
注 册:2004-10-31
收藏
得分:0 

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

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

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


我渴望掌控时空的核心——用最先进的技术,打造无比美丽的世界!
2005-04-11 01:00
musicml
Rank: 1
等 级:新手上路
帖 子:273
专家分:0
注 册:2005-4-2
收藏
得分:0 

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

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


Every thing is possible.
2005-04-11 12:48
快速回复:高手请进
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.045397 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved