|
用法:#include <stdio.h>
int printf(const char *format, ...);
int sprintf(char *s, const char *format, ...);
int fprintf(FILE *stream, const char *format, ...);
printf 函数从标准输出上输出它的“输出内容”。
fprintf 函数在一个指定流上输出它的“输出内容”。
sprintf
要打印 % ,需要使用 %% 形式。
当用的转换说明符:
%d,%i : 打印一个10进制整数
%o,%x : 分别打印一个八进制和十六进制整数
%c : 打印一个字符
%s : 打印一个字符串
%f : 打印一个浮点型(单精度)数
%e : 打印一个双精度数,固定的格式
%g : 打印一个double型数据,通用格式
可选的尺寸(size)说明符来说明整数声明的类型,如:
h : %hd 表示 short int 类型
l : %ld 表示 long int 类型
通过用域说明符,可以很有力的控制项目(way itmes)被打印出来。这些对转换说明符(conversion specifiers)进行了扩展以包含控制输出的间距(spacing)。一个常用法是对浮点数的小数位(decimal places)进行设置或者一个字符串前后的空格数量。
域说明符以数字的形式给出,在转换说明符中它紧跟着 % 符号。
如下所示:
Format Argument |Output|
%10s "Hello" | Hello|
%-10s "Hello" |Hello |
%10d 1234 | 1234|
%-10d 1234 |1234 |
%010d 1234 |0000001234 |
%10.4f 12.34 | 12.3400|
%*s 10,"Hello" | Hello|
--------------------------------------------------------------
上面所有的例子都以10个字符的宽度打印出来。一个负的域宽度(a negative field width)意味着这条目在域内是左对齐的。一个变量域宽度由星号(*,asterisk)指出。在这种情况里,下一个声明(argument)被用作宽度。最前面为0,表示这个条目前面都由0来扩充。根据POSIX规定,printf 不会削减(truncate)域,而是它会把域扩展直至适应超出的宽度。例如:
Format Argument |Output|
%10s “HelloTherePeeps” |HelloTherePeeps|
* 号用法示例:
#include <stdio.h>
int main()
{
char *s = "hello world!";
printf("%*s\n",30,s);
return 0;
}
输出结果:[root@localhost C]# ./printf_test.exe
hello world! |
|