#include <stdio.h>
//输入12345678
main()
{
int a,b;
scanf("%2d%2d%3d",&a,&b);
printf("%d\n",a+b);
}
运行结果
用别的编译器得到结果是46,也就是12+34的值
怎么具体分析这种格式控制符个数与输出数据个数不一样的语句呀
#include <stdio.h>
//输入12345678
main()
{
int a,b;
scanf("%2d%2d%3d",&a,&b);
printf("%d\n",a+b);
}
运行结果
你这里有个小错误,有三个格式控制符
一般一个格式控制符对应一个输入,
第一个%2d,对应a这个变量的输入,
第二个%2d,对应b这个变量的输入。
第三个%3d没有对应的输入。
拿这个%d来说,以n来代表数字,
%nd,你这个n是几,计算机就会取几位数,当你输入的数超出时,它只会取n位数。没超出,当然按你输的来计算。
拿你那个来看,
你输入的数是12345678,
第一个%2d,n为2,取两位数,12
第二个%2d,12已经被前面的数取了,这个就去后面的两位,也就是,34