青竹不凋 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日

悬赏问题

  • ¥20 keepalive配置业务服务双机单活的方法。业务服务一定是要双机单活的方式
  • ¥50 关于多次提交POST数据后,无法获取到POST数据参数的问题
  • ¥15 win10,这种情况怎么办
  • ¥15 如何在配置使用Prettier的VSCode中通过Better Align插件来对齐等式?(相关搜索:格式化)
  • ¥100 在连接内网VPN时,如何同时保持互联网连接
  • ¥15 MATLAB中使用parfor,矩阵Removal的有效索引在parfor循环中受限制
  • ¥20 Win 10 LTSC 1809版本如何无损提升到20H1版本
  • ¥50 win10 LTSC 虚拟键盘不弹出
  • ¥30 微信小程序请求失败,网页能正常带锁访问
  • ¥15 Matlab求解微分方程,如何用fish2d进行预优?