qq_43412960
2019-10-16 00:08
采纳率: 79.1%
浏览 269

这是一个关于C语言scanf语句的吃字符问题

#include<stdio.h>
#include<stdlib.h>
int main()
{
int month=0;
int day=0;
int result=0;
    int days[]={31,28,31,30,31,30,31,31,30,31,30,31};

    printf("请输入您选择的月日");
    scanf("%d,%d",&month,&day);
    for(int num=0;num<12;num++)
    {   if(num<month)
        result+=days[num];
        else

            result+=day;
    }
    printf("%d",result);


    system("pause");

return 0;}

以上是我的全部代码,执行scanf语句的时候,在输入第一个整数后,输入逗号,在输入第二个整数,会吃掉第一个数字,这是为什么呢

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • threenewbee 2019-10-16 08:59
    已采纳

    scanf("%d,%d",&month,&day);
    这里逗号是全角的

    打赏 评论
  • lty2017 2019-10-16 11:25

    不知道你用的是哪个版本的,我的scanf是弃用的编译不过,改用scanf_s("%d,%d",&m,&d);就OK正常了。
    逗号英文的,控制台输入也是英文的图片说明
    哦,你的是C,我的是C++。
    图片说明
    我该用在线C编译也是OK的,英文逗号,好好检查

    打赏 评论
  • dami88 2019-10-16 11:55

    code::blocks编译后运行还可以,就是不能输入法是中文的,要英文的。半角。

    打赏 评论

相关推荐 更多相似问题