printf格式化输出

来源:互联网 发布:个人数据交易平台 编辑:程序博客网 时间:2024/06/02 02:29

%c:字符
%i:整数(老)
%d:整数
%ld:长整型(long int)
%Ld:长整型(long long int)
%hd:短整形(short int)
%e:浮点数、e-记数法(指数形式)
%E:浮点数、E-记数法(指数形式)
%f:浮点数(%nf,n表示小数点后n位)
%g、%G:浮点数(自动选择合适的格式)
%o:八进制数
%s:字符串
%S :宽字符(=%ws)
%x:十六进制数
%X:大写十六进制
%p:指针
%u:无符号整数
%%:打印百分号
%zu:size_t
%a: 浮点数、十六进制、p-记数法
%A:大写浮点数、十六进制、P-记数法

宽字符

wchar_t w = 'A';printf("wchar_t: %C\n", w);# ./a.outwchar_t: A

宽字节
http://blog.csdn.net/zhangxuechao_/article/details/71188953

二进制、八进制
http://blog.csdn.net/zhangxuechao_/article/details/70919914

p-记数法

float f = 3.1415926;printf("p: %a\n", f);printf("P: %a\n", f);# ./a.outp: 0x1.921fb4p+1P: 0x1.921fb4p+1

%e、%f、%g

float f = 3.1415926;printf("e: %e\n", f);printf("f: %f\n", f);printf("g: %g\n", f);# ./a.oute: 3.141593e+00f: 3.141593g: 3.14159

可变参数输出

printf("%*.*s\n", m, n, str);

m :总宽度
n:输出个数

char *str = "hello";printf("%*.*s\n", 4, 2, str);# ./a.out  he