| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 552 人关注过本帖
标题:简单的输入输出问题
只看楼主 加入收藏
iceberg0
Rank: 1
等 级:新手上路
帖 子:37
专家分:9
注 册:2012-3-2
结帖率:0
收藏
 问题点数:0 回复次数:6 
简单的输入输出问题
#include <stdio.h>
 int main()
 {
     char ch;
     do
    {
        printf("Another?(y/n)");
        scanf("%c",&ch);
    }while(ch!='n');

    return 0;
}
按y时为什么出现两句printf("Another?(y/n)");???
搜索更多相关主题的帖子: return include 
2012-08-30 20:58
justNPC
Rank: 5Rank: 5
等 级:职业侠客
帖 子:101
专家分:311
注 册:2012-8-11
收藏
得分:0 
因为你输入y的时候还按了 回车键
把两个字符送到了缓存
你可以在scanf()前面加一个getchar()吃了回车
活着加fflush(stdin); 直接清空缓存
2012-08-30 21:07
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
# /tmp/a.out
Another?(y/n)y
Another?(y/n)Another?(y/n)^C

第一个是提示 然后你摁了y 再摁了回车 这是俩字符 回车也是字符啊 而这俩都不是'n' 所以 输出是这个样子
2012-08-30 21:07
iceberg0
Rank: 1
等 级:新手上路
帖 子:37
专家分:9
注 册:2012-3-2
收藏
得分:0 
回复 3楼 zklhp
scanf不是遇到空白符就会停止么?
2012-08-30 21:16
sdjk1990
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2012-7-29
收藏
得分:0 
如二楼所说回车也是字符,最简单的改法在%号前加空格一切就OK了。scanf(" %d",&ch);

2012-08-30 21:30
iceberg0
Rank: 1
等 级:新手上路
帖 子:37
专家分:9
注 册:2012-3-2
收藏
得分:0 
谢谢各位的回答
2012-08-30 21:49
遗矢的老人
Rank: 9Rank: 9Rank: 9
来 自:成都
等 级:蜘蛛侠
威 望:7
帖 子:325
专家分:1131
注 册:2012-7-20
收藏
得分:0 
(⊙o⊙)
2012-08-30 22:32
快速回复:简单的输入输出问题
数据加载中...
 
   



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

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