青竹不凋 2021-12-14 22:49 采纳率: 91.7%
浏览 30
已结题

字符型变量加域宽读入会发生什么

int a,b;
char c;
scanf("%4d%2c%3d",&a,&c,&b);
输入987654321
结果a为9876,c为5,b为321
想知道在读入字符型变量c时发生了什么,输入的4去哪了
字符型变量只有一个位置,这么写应该本来就是不合理的,可我们作业就长这样,我不是故意的,大佬轻喷

  • 写回答

1条回答 默认 最新

  • -Undefined_ 2021-12-14 23:13
    关注

    加域宽读入就是读取指定宽度的数据
    %4d,从输入中读取前4位数字,即9876存到变量a中,故a为9876
    %2c,从输入中读取两位字符,即'54'存到变量c中,但是变量c是字符char型,所以两位中只能保存1位,即'5','4'是作为字符读取了,但是没有保存下来;
    %3d就是后面的321了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 12月18日
  • 已采纳回答 12月14日
  • 创建了问题 12月14日