关于printf("%d",A)与printf("%02d",A) 类型的printf的格式修饰符

来源:互联网 发布:山东大学经济学知乎 编辑:程序博客网 时间:2024/06/06 06:06

%d 是输出十进制整数 d是decimal的缩写
%2d要求输出数据为两位,大于两位则原样输出,例如2.,123,遇到2会补一个空格(输出2位),看到123会输出123
%2.0d我表示没遇过,这应该是一种错误的写法,我用编译软件测试了,没测试出它的用法。
只有这两种格式
%m.ns:输出字符串,m指定输出宽度,n表示字符串的前n个字符输出到屏幕,如果m>n则需要补空格,例如%5.3s表示输出宽度是5,而字符实际只输出3个则需要补空格2个
%m.nf:m表示找整个浮点数输出宽度,n表示小数输出的宽度。例如%5.2f 输出一个58.6238,
那么实际输出的是58.62,注意了,m是整个数据要输时候的宽度。
%02d:默认情况下,数据数据宽度不够2位是用空格填补的,但是因为2d前面有0,表示,数据宽度不足时用0填补,例如%03d输出 12,那么实际输出到屏幕的是012.
核心部分:
%2d要求输出数据为两位,大于两位则原样输出,小于两位则补空格

//以下为测试:#include<stdio.h>int main(void){    printf("没有格式修饰符,则默认用空格填充:%d:%d:%d\n",1,1,1);     printf("有各类格式修饰符:%02d:%03d:%3d:%3d:\n",1,1,1,12345);       //对于%3d,若输入的是1,则在3位固定宽度中的数字的前两位补空格,先空格,后数字    //对于%03d,则在三位固定宽度中的前两位补0,先0,后数字    //对于%3d,如果输入的int数字大于3位,则输入数字宽度的多大,输出的数字宽度就为多大,即:大于三位(%3d)则原样输出}
/*输出结果为:没有格式修饰符,则默认用空格填充:1:1:1有各类格式修饰符:01:001:  1:12345:Program ended with exit code: 0 */
原创粉丝点击