| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1144 人关注过本帖
标题:C新手,遇到一个奇怪的问题,只能来这里请假大咖们了
取消只看楼主 加入收藏
yimingyin
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2017-8-4
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:2 
C新手,遇到一个奇怪的问题,只能来这里请假大咖们了
我先上code:

数据类型为char

#include <stdio.h>
int main(void)
{
    int a=0;
    char b='n';
    for(;;)
    {
        printf("need more?");
        scanf("%c",&b);
        if(b=='n')
        {
            break;
        }
    }
    return 0;
}

数据类型为int

#include <stdio.h>
int main(void)
{
    int a=0;
    int b=10;
    for(;;)
    {
        printf("need more?");
        scanf("%d",&b);
        if(b==10)
        {
            break;
        }
    }
    return 0;
}
如果运行这个code,没有input ‘n',循环每次输出两次“need more?”
如果我把’b'的数据类型换做int,则不会出现这样的问题,实在不知道为什么,请教了。
搜索更多相关主题的帖子: code 数据类型 int scanf break 
2017-08-04 09:58
yimingyin
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2017-8-4
收藏
得分:0 
回复 2楼 吹水佬
可以了,请问是为什么呢
2017-08-04 10:19
yimingyin
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2017-8-4
收藏
得分:0 
回复 4楼 吹水佬
多谢了,没有考虑到enter也是一个字符
2017-08-04 10:26
快速回复:C新手,遇到一个奇怪的问题,只能来这里请假大咖们了
数据加载中...
 
   



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

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