printf:
%2d是将数字按宽度为2,采用右对齐方式输出,若数据位数不到2位,则左边补空格

%02d,和%.2d差不多,只不过左边补0。

scanf:
如果想输入02,不要用scanf("%.2d",&a);
而是用scanf("%02d",&a).
上网查了一下,因为:
%.2是保留小数后面的两位数字,%d是整形,整形本身就和小数不一样,%.2d就会引起编译器的误解,计算机不知道你到底时要输入整形还是小数,而%02d是指保留两位有效数字的整形,整形与两位不冲突,如果输入1的话,计算机就会自动加0保存为01。
在C语言中,%2d用于格式化输出整数,保证至少两位并右对齐,不足则补空格。%02d与其类似,但不足两位时补0。对于输入,使用%02d可以确保读入的两位整数前面的0不会丢失。%.2d通常用于格式化输出小数,保留两位小数,与整型输入混淆会导致编译错误。
1863

被折叠的 条评论
为什么被折叠?



