c - 在 printf 中打印八进制文字
问题描述
打印八进制文字的正确方法是什么?例如,以下适用于十六进制数字\x
,但不适用于八进制\0
:
printf("\x66 \0102\n");
f 2
如何才能做到这一点?
解决方案
八进制文字由 1 到 3 位数字组成。\0102
不支持4 位序列。似乎这被视为两个字符:\010
和2
。
你想要的可能是printf("\x66 \102\n");
。f B
如果使用 ASCII,这将打印出来。
引自N1570 6.4.4.4 字符常量:
八进制转义序列:
\八进制数字
\八进制数字八进制数字
\八进制数字八进制数字八进制数字
八进制转义序列中反斜杠后面的八进制数字被视为整数字符常量的单个字符或宽字符常量的单个宽字符构造的一部分。如此形成的八进制整数的数值指定所需字符或宽字符的值。
推荐阅读
- keycloak - Micronaut 钥匙斗篷
- swift - Swift 初始化类和使用参数和方法
- vue.js - Stripe 未注册新日志
- javascript - 通过将属性相乘来更新数组总属性
- javascript - AWS Cognito:更改用户属性或删除用户如何需要密码?
- mapping - MRTK v2 空间映射隐藏多边形的可视化
- rust - 从先前完成的 Stream 的结果中产生一个 Stream
- google-mlkit - 如何使用 MLKit FaceDetector 跟踪图像的人脸
- python - Kivy在wi上返回黑屏
- android - 从中心而不是左上角设置视图的位置