我对这段C语言出来的结果有疑问~~~~~

来源:百度知道 编辑:UC知道 时间:2024/06/03 08:26:00
#include<stdio.h>
main()
{
int a=0;
scanf("a=%3d",&a);
printf("a=%d\n",a);
}

输入形式
a=12回车 输出结果为什么是a=12而不是a=空格12呢??不是指定数据宽度是3了吗?
输入形式
a=1234回车 输出结果为什么是a=123而不是a=1234呢 不是说指定的输出宽度比数据的实际宽度小 ,则将数据完整输出吗?

scanf("a=%3d",&a); 最多接受3位数字的a,其余的忽略。

你指定的是输入宽度。

你弄错了吧
按你意思应该是这样定义才对:
scanf("a=%d",&a);
printf("a=%3d\n",a);

.... 你前面不是定义了%3d了吗?那结果当然是123了,4被忽略掉了