| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1014 人关注过本帖
标题:[求助]为什么出现两行输入提示?(已经解决)
取消只看楼主 加入收藏
为了c
Rank: 1
等 级:新手上路
帖 子:62
专家分:0
注 册:2005-2-2
收藏
 问题点数:0 回复次数:2 
[求助]为什么出现两行输入提示?(已经解决)
教材上的例子,将大写字母转为小写,我加了一个循环语句,结果屏幕上出现两行提示“Please input again:”,请各位大侠帮忙看看为什么会这样? #include "stdio.h" #include "ctype.h" main() {char x,y; x=getchar(); while (isupper(x)==0) {printf("Please input again:\n"); scanf("%c",&x);} /*换成x=getchar()也一样*/ y=x+32; printf("%c %d\n",x,x); printf("%c %d\n",y,y); getch(); } 谢谢2-5楼朋友的回答,用其他方法也能完成这个转换。 我的问题是:为什么会出现两行提示? (2005.02.20) 问题原因如下: 1、scanf("%c",&x)语句表示只能接受1个字符,而输入一个字符后需要“回车”确认, 相当于输入了2个字符。 2、在循环语句中如果第一个字符不是大写字母,则第二个字符“回车” 自动被“scanf”接受(第二个字符也不是大写字母),所以会连续出现两行提示语句。 3、将原语句改为scanf("%2c",&x) 或scanf(" %c",&x)即可解决问题。如果超出1个字符, 仍然会出现原来的问题。 谢谢8楼的兄弟!(2005.02.26)

[此贴子已经被作者于2005-2-26 13:48:17编辑过]

搜索更多相关主题的帖子: 提示 输入 
2005-02-17 23:01
为了c
Rank: 1
等 级:新手上路
帖 子:62
专家分:0
注 册:2005-2-2
收藏
得分:0 
以下是引用ysfabm在2005-2-18 7:58:30的发言: 这样就可以了! #include "stdio.h" #include "ctype.h" main() {char x,y; x=getchar(); while (isupper(x)==0) {{printf("Please input again:\n"); scanf("%c",&x);} /*换成x=getchar()也一样*/ y=x+32; printf("%c %d\n",x,x); printf("%c %d\n",y,y);} getchar(); }
谢谢版主回答,不过仍然不对

2005-02-20 13:15
为了c
Rank: 1
等 级:新手上路
帖 子:62
专家分:0
注 册:2005-2-2
收藏
得分:0 
谢谢8楼的兄弟,问题解决!

2005-02-26 13:12
快速回复:[求助]为什么出现两行输入提示?(已经解决)
数据加载中...
 
   



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

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