首页 > 解决方案 > 在 printf 中打印八进制文字

问题描述

打印八进制文字的正确方法是什么?例如,以下适用于十六进制数字\x,但不适用于八进制\0

printf("\x66 \0102\n");

f 2

如何才能做到这一点?

标签: coctal

解决方案


八进制文字由 1 到 3 位数字组成。\0102不支持4 位序列。似乎这被视为两个字符:\0102

你想要的可能是printf("\x66 \102\n");f B如果使用 ASCII,这将打印出来。

引自N1570 6.4.4.4 字符常量:

八进制转义序列:
\八进制数字
\八进制数字八进制数字
\八进制数字八进制数字八进制数字

八进制转义序列中反斜杠后面的八进制数字被视为整数字符常量的单个字符或宽字符常量的单个宽字符构造的一部分。如此形成的八进制整数的数值指定所需字符或宽字符的值。


推荐阅读