printf 转换说明符列表

标准转换说明符(C99)

说明符 对应参数类型 作用描述
%d / %i int 输出有符号十进制整数%i是老式写法,功能与%d完全相同)
%u unsigned int 输出无符号十进制整数
%o unsigned int 输出无符号八进制整数(无前导0
%x / %X unsigned int 输出无符号十六进制整数(%x小写a-f%X大写A-F,无前导0x
%f / %F double 输出十进制浮点数(%f小写inf/nan%F大写INF/NAN
%e / %E double 输出科学计数法浮点数(%e小写e%E大写E
%g / %G double 自动选择%f%e格式(去掉末尾无意义的零)
%a / %A double 输出十六进制科学计数法浮点数(C99新增)
%c int 输出单个字符(参数会被转换为unsigned char
%s char* 输出以\0结尾的字符串
%p void* 输出指针地址(通常为十六进制形式)
%n int* 特殊:将截至目前已输出的字符数存入对应参数指向的变量
%% 输出一个字面量%字符

扩展说明符(平台相关)

  • %C / %S:宽字符/宽字符串(Microsoft扩展)
  • %m:输出当前errno对应的错误信息(glibc扩展)