int a,b;
char c;
scanf("%4d%2c%3d",&a,&c,&b);
输入987654321
结果a为9876,c为5,b为321
想知道在读入字符型变量c时发生了什么,输入的4去哪了
字符型变量只有一个位置,这么写应该本来就是不合理的,可我们作业就长这样,我不是故意的,大佬轻喷
字符型变量加域宽读入会发生什么
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- -Undefined_ 2021-12-14 23:13关注
加域宽读入就是读取指定宽度的数据
%4d,从输入中读取前4位数字,即9876存到变量a中,故a为9876
%2c,从输入中读取两位字符,即'54'存到变量c中,但是变量c是字符char型,所以两位中只能保存1位,即'5','4'是作为字符读取了,但是没有保存下来;
%3d就是后面的321了本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥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进行预优?