查看“C 其他输出转换”的源代码
←
C 其他输出转换
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
本节描述了printf的杂项转换。 <br> ‘%c’转换打印一个字符。如果没有’l’修饰符,则int参数首先被转换为无符号字符。然后,如果用于宽流函数,字符将被转换为相应的宽字符。’-’标志可用于指定字段中的左对齐,但没有定义其他标志,也没有给定精度或类型修饰符。例如: <syntaxhighlight lang="cpp">printf ("%c%c%c%c%c", 'h', 'e', 'l', 'l', 'o');</syntaxhighlight> 打印‘hello’。 如果有’l’修饰符,参数应该是wint_t类型的。如果在多字节函数中使用,宽字符在添加到输出之前会被转换为多字节字符。在这种情况下,可以生成多个输出字节。 <br> ‘%s’转换打印一个字符串。如果没有’l’修饰符,对应的参数必须是char ''(或const char '')类型。如果在宽流函数中使用,字符串首先被转换为宽字符字符串。可以指定一个精度来表示要写入的最大字符数;否则,字符串中的字符(不包括终止空字符)将被写入输出流。’-’标志可用于指定字段中的左对齐,但为此转换没有定义其他标志或类型修饰符。例如: <syntaxhighlight lang="cpp">printf ("%3s%-6s", "no", "where");</syntaxhighlight> 打印‘ nowhere ’。 如果有’l’修饰符,参数应该是wchar_t(或const wchar_t *)类型。 如果你不小心将null指针作为’%s’转换的参数,GNU C库会将其打印为’(null)’。我们认为这比崩溃更有用。但是故意传递null参数并不是好的做法。 <br> ’%m’转换打印与errno中的错误代码对应的字符串。参见错误消息。因此: <syntaxhighlight lang="cpp">fprintf (stderr, "can't open `%s': %m\n", filename);</syntaxhighlight> 等同于: <syntaxhighlight lang="cpp">fprintf (stderr, "can't open `%s': %s\n", filename, strerror (errno));</syntaxhighlight> ‘%m’转换可以使用’#‘标志打印由strerrorname_np提供的错误常量。’%m’和’%#m’都是GNU C库扩展。 <br> ’%p’转换打印指针值。对应的参数必须是void *类型。在实践中,你可以使用任何类型的指针。 在GNU C库中,非空指针以无符号整数的形式打印,就像使用了’%#x’转换一样。空指针打印为’(nil)’。(在其他系统中,指针可能以不同的方式打印。) 例如: <syntaxhighlight lang="cpp">printf ("%p", "testing");</syntaxhighlight> 打印‘0x’后跟一个十六进制数——字符串常量”testing”的地址。它不打印单词’testing’。 你可以在’%p’转换中使用’-’标志来指定左对齐,但没有其他标志、字段宽度或精度。 <br> ’%n’转换与其他输出转换不同。它使用必须是一个指向int的指针的参数,而不是打印任何东西,而是将此调用到目前为止打印的字符数存储在该位置。’h’和’l’类型修饰符允许指定参数是short int ''或long int ''而不是int *,但没有标志、字段宽度或精度被允许。 例如, <syntaxhighlight lang="cpp">int nchar; printf ("%d %s%n\n", 3, "bears", &nchar);</syntaxhighlight> 打印: 3 bears 并将nchar设置为7,因为‘3 bears’是七个字符。 <br> ‘%%’转换打印字面上的’%’字符。此转换不使用参数,并且没有标志、字段宽度、精度或类型修饰符被允许。 <br>
返回至“
C 其他输出转换
”。
导航菜单
个人工具
登录
命名空间
页面
讨论
大陆简体
查看
阅读
查看源代码
查看历史
更多
搜索
导航
首页
基础知识
正则表达式
Markdown
分布式
项目管理
系统集成项目管理基础知识
云原生
Docker
云原生安全
云原生词汇表
十二因素应用
Kubernetes
音频处理
音频合成
Edge-tts
CMS系统
Docsify
VuePress
Mediawiki
自动生成
Marp
CI/CD
GitLab
设计
颜色
平面设计
AI
数字人
操作系统
GNU/Linux
数据库
Mysql
工具
链入页面
相关更改
特殊页面
页面信息