C 编程/过程和函数/printf
外观
在 C 语言中,printf
函数根据模板字符串 template 的控制,将可选参数打印到流 stdout。它返回打印的字符数,如果出现输出错误则返回负值。
int printf (const char *template, ...)
有关 printf 的更多信息,请参阅 维基百科上关于 printf 的文章.
以下表格总结了 C 语言实现的 printf 中所有不同转换的功能
- `%d', `%i'
- 将整数打印为带符号的十进制数。`%d' 和 `%i' 在输出方面是同义词,但在用于输入的
scanf()
函数时则不同。
- `%o'
- 将整数打印为无符号的八进制数。
- `%u'
- 将整数打印为无符号的十进制数。
- `%x', `%X'
- 将整数打印为无符号的十六进制数。`%x' 使用小写字母,`%X' 使用大写字母。
- `%f'
- 以常规(定点)表示法打印浮点数。
- `%e', `%E'
- 以指数表示法打印浮点数。`%e' 使用小写字母,`%E' 使用大写字母。
- `%g', `%G'
- 以常规或指数表示法打印浮点数,具体取决于其幅度哪个更合适。`%g' 使用小写字母,`%G' 使用大写字母。
- `%a', `%A'
- 以十六进制分数表示法打印浮点数,其中以 2 为底的指数以十进制数字表示。`%a' 使用小写字母,`%A' 使用大写字母。
- `%c'
- 打印单个字符。
- `%lc'
- 打印单个宽字符。
- `%C'
- 这是 `%lc' 的别名。(这是一个非标准的 Unix 特定扩展。)
- `%s'
- 打印字符串。
- `%ls'
- 打印宽字符字符串。
- `%S'
- 这是 `%ls' 的别名。(这是一个非标准的 Unix 特定扩展。)
- `%p'
- 打印指针的值。
- `%n'
- 获取到目前为止打印的字符数。注意,此转换说明符不会产生任何输出。
- `%m'
- 打印与
errno
变量的值相对应的字符串。(这是一个非标准的 GNU 扩展。)
- `%%'
- 打印文字 `%' 字符。
如果 语法 转换说明符 无效,将发生不可预测的事情,因此不要这样做。如果提供的 函数参数 不足以提供模板字符串中所有转换说明符的值,或者参数类型不正确,则结果不可预测。如果您提供的参数多于转换说明符,则多余的参数值将被忽略;这有时很有用。