C语言格式化输出


printf

函数原型:int printf( const char * format, ...);

其中format表示对数据的格式化方式,是一串字符串;...表示可以输入任意多个参数。

一般情况下format字符串应当按照以下格式书写:

%[flags][width][.precision][length]specifier

括号内可写可不写,最后一处说明符(specifier)不能少。

例如%d %.3lf %s 都是合法的,表达了不同的格式化方法,用于输出不同的字符。

specifier

Specifier 可选参数

[width]

用于指定输出数据占据的最小宽度。如果输出数据宽度比指定长度短,将会用空格填充到指定长度。数据超过指定宽度时不会被截断。

int a = 12345, b = 123, c = 1234567;
printf("%6d %6d %6d",a,b,c);

输出: #12345####123#1234567
为了方便辨认,#表示空格

如果想用0填充空白处,可以写成

printf("%06d",b);

输出: 000123

除了空格与0,似乎不能用其他字符填充。

[flags]可选参数

  • - 输出数据往左对齐。
    int a = 12345, b = 123, c = 1234567;
    printf("%-6d %-6d %-6d",a,b,c);

    输出: 12345##123####1234567
    #表示空格

返回值

一旦输出成功,printf函数会返回输出的字符总数。

输出出现了错误,会返回一个负数值。

int a = 12345, b = 123, c = 1234567;
int num_ch;
num_ch = printf("%06d %06d %06d", a, b, c);
printf("\n%d", num_ch);

输出:
012345 000123 1234567
21


Author: Tsum
Reprint policy: All articles in this blog are used except for special statements CC BY 4.0 reprint policy. If reproduced, please indicate source Tsum !
  TOC