C语言printf()函数输出结果格式详解

首先总结一下各类 格式控制符

%d :按整型数据的实际长度输出。
%ld :输出长整型数据。
%f :用来输出实数,包括单精度和双精度,以小数形式输出。系统默认整数部分全部输出,小数部分输出 6 位,超过 6 位的四舍五入
(这里说句题外话,要记得 double类型的数据输入用 %lf 而输出用 %f,而float类型输入输出都用 %f)
%o :以八进制整数形式输出。
%s :用来输出字符串。
%x(或 %X 或 %#x 或 %#X): 以十六进制形式输出整数。具体不同请看文章末尾补充↓

①怎么使得输出的数据右对齐?

%md :只需要在格式控制符之间加一个数字m 来指定的输出字段的宽度。

#include <stdio.h>
int main(void)
{
    
    
    int n1 = 7;
    int n2 = 777;
    int n3 = 7777777;
    printf("%8d\n", n1);
    printf("%8d\n", n2);
    printf("%8d\n", n3);
    return 0;
}

运行结果为:
       7
     777
 7777777

②怎么使得输出的数据右对齐,且空位用0填充?

%0md :指定输出字段的宽度数字m前再加一个0。

#include <stdio.h>
int main(void)
{
    
    
    int n1 = 7;
    int n2 = 777;
    int n3 = 7777777;
    printf("%8d\n", n1);
    printf("%8d\n", n2);
    printf("%8d\n", n3);
    return 0;
}

运行结果为:
00000007
00000777
07777777

③如何控制浮点数的小数位数?

%.nf :指定输出的小数位数为n,最后一位四舍五入。

#include <stdio.h>
int main(void)
{
    
    
    float n1 = 7;
    float n2 = 7.7777;
    float n3 = 77.77777;
    printf("%8f\n", n1);            //小数点占一位,小数部分也占位
    printf("%.3f\n", n2);
    printf("%08.3f\n", n3);           
    return 0;
}

运行结果为:
7.000000
7.778
0077.778

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
补充 输出十六进制输出控制符相关知识:

#include <stdio.h>
int main(void)
{
    
    
    int i = 77;
    printf("%x\n", i);    //%小写的x
    printf("%X\n", i);    //%大写的X
    printf("%#x\n", i);   //#小写的x
    printf("%#X\n", i);   //#大写的X
    return 0;
}

运行结果为:
2f
2F
0x2f
0X2F

从输出结果可以看出:
如果是小写的x,输出的字母就是小写的;如果是大写的X,输出的字母就是大写的;如果加一个#,就以标准的十六进制形式输出。

おすすめ

転載: blog.csdn.net/kyc592/article/details/111536596