标题:求教scanf函数的的一个问题
只看楼主
zt815082858
Rank: 1
等 级:新手上路
帖 子:56
专家分:3
注 册:2016-10-30
结帖率:61.54%
已结贴  问题点数:10 回复次数:4 
求教scanf函数的的一个问题
# include<stdio.h>
void main()
{
    int a,b;
    char fuhao;
    printf("请输入两个数值和一个运算符");
    scanf("%d%c%d\n",&a,&fuhao,&b);->->->->我不小心加入了换行符,需要输入两次才输出结果,求教各位这是为什么?

    switch(fuhao)
    {
    case'+':
        printf("%d+%d=%d\n",a,b,a+b);
        break;
    case'-':
        printf("%d-%d=%d\n",a,b,a-b);
        break;
    case'*':
        printf("%d*%d=%d\n",a,b,a*b);
        break;
    case'/':
        printf("%d/%d=%d\n",a,b,a/b);
        break;
    default:printf("请输入正确的运算符\n");break;
    }

}


搜索更多相关主题的帖子: include 换行符 fuhao 
2017-01-09 15:26
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:3 
没有为什么 scanf 后面就没有\n 这一说

DO IT YOURSELF !
2017-01-09 15:33
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:3 
去掉不小心
2017-01-09 15:34
linuxBC
Rank: 1
等 级:新手上路
帖 子:4
专家分:3
注 册:2016-12-30
得分:3 
多发点
2017-01-09 15:36
bjut_Allen
Rank: 9Rank: 9Rank: 9
来 自:平乐园工业技术学校
等 级:蜘蛛侠
威 望:8
帖 子:323
专家分:1223
注 册:2016-10-16
得分:3 
scanf("%d%c%d\n",&a,&fuhao,&b);在后面加了\n(空白符),scanf从缓冲区读取时会跳过空白符,直到你再输入一个非空白符为止,也就是你说输入两次才输出结果

Code is my life.
2017-01-09 15:37



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-473440-1-1.html




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

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