printf
函数原型:int printf( const char * format, ...);
其中format
表示对数据的格式化方式,是一串字符串;...
表示可以输入任意多个参数。
一般情况下format字符串应当按照以下格式书写:
%[flags][width][.precision][length]specifier
括号内可写可不写,最后一处说明符(specifier)不能少。
例如%d %.3lf %s
都是合法的,表达了不同的格式化方法,用于输出不同的字符。
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