| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 559 人关注过本帖
标题:程序开关的一个问题
只看楼主 加入收藏
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
结帖率:99.34%
收藏
已结贴  问题点数:10 回复次数:5 
程序开关的一个问题
多次输入并显示一个数,不想输入时输入N或者n结束程序。
代码如下:
#include <stdio.h>
int  main(void)
{
    int   n, flag = 1;
    char  c;
     while (flag)
     {   scanf("%d", &n);
         printf("%d\n", n);
         printf("Do you want to continue Input?(Y/N):");
         scanf(" %c", &c);
         if(c =='N' || c =='n')
             flag = 0;
     }
     return  0;
}
为什么scanf(" %c", &c);的%c前必须加个空格,才能输入不同的数。
搜索更多相关主题的帖子: 开关 continue include return 
2011-12-12 11:46
于祥
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:5
帖 子:1047
专家分:4132
注 册:2011-4-24
收藏
得分:2 
这是scanf输入字符连用的问题,你的程序中两个 scanf("%d", &n); scanf(" %c", &c);你输入一个整数后会按一个回车,回车也是一个字符,如果%c前没有空格,它会输入后一个scanf(" %c", &c);中,如果加一个空格就可以避免这种问题

最基础的往往是你最容易忽略的!
2011-12-12 11:56
strivelong87
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:68
专家分:159
注 册:2011-11-24
收藏
得分:2 
正解啊
2011-12-12 12:53
easonchanel
Rank: 2
等 级:论坛游民
帖 子:18
专家分:41
注 册:2011-8-23
收藏
得分:2 
2楼正解!
2011-12-12 22:01
hengde_li
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:131
专家分:178
注 册:2010-1-15
收藏
得分:2 
2楼对,如果是字符串或数字就没有这个问题了,为了方便应用(有可能是多个空格),你就加个条件判断字符是否为blank,tab或者enter之类的!
2011-12-14 11:09
gao16forever
Rank: 2
等 级:论坛游民
帖 子:32
专家分:29
注 册:2011-11-29
收藏
得分:2 
2楼正解,其实好像也可以用scanf("%c ",&c),这样也是可以的,或者scanf("%c",&c);getchar();用getchar()读走空格
2011-12-14 22:52
快速回复:程序开关的一个问题
数据加载中...
 
   



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

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