跳转到内容

C 编程/过程和函数/printf

来自维基教科书,开放的书籍,开放的世界

关于 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 扩展。)
`%%'
打印文字 `%' 字符。

如果 语法 转换说明符 无效,将发生不可预测的事情,因此不要这样做。如果提供的 函数参数 不足以提供模板字符串中所有转换说明符的值,或者参数类型不正确,则结果不可预测。如果您提供的参数多于转换说明符,则多余的参数值将被忽略;这有时很有用。

华夏公益教科书