C 未知逃逸序列
我试图打印一个显示温度表的字符串C 未知逃逸序列,c,C,我试图打印一个显示温度表的字符串 printf(“表24A(20摄氏度)” 度符号是一个常量,我定义为0xDF,因此字符串如下所示:“表24A(20\xDF C)” 这可以工作,但看起来不正确,因为\xDF和C之间有空格。 如果删除空格,编译器将发出警告十六进制转义序列超出范围 如果我将字符串修改为“TABLE 24A(20\xDF\C)”我会得到正确的结果,但编译器会发出警告“未知转义序列:'\C' 有没有一种方法可以消除警告,但会丢失两个字符之间的空格?您可以利用以下事实:连续字符串文本会自
printf(“表24A(20摄氏度)”代码>
度符号是一个常量,我定义为0xDF
,因此字符串如下所示:“表24A(20\xDF C)”
这可以工作,但看起来不正确,因为\xDF
和C
之间有空格。
如果删除空格,编译器将发出警告十六进制转义序列超出范围
如果我将字符串修改为“TABLE 24A(20\xDF\C)”
我会得到正确的结果,但编译器会发出警告“未知转义序列:'\C'
有没有一种方法可以消除警告,但会丢失两个字符之间的空格?您可以利用以下事实:连续字符串文本会自动连接:
printf("**TABLE 24A (20\xDF" "C)**");
这可以防止解析器为转义序列使用比您想要的更多的字符
您还可以将字符作为参数传入,并使用%c
格式说明符打印它:
printf("**TABLE 24A (20%cC)**", '\xDF');
\x
转义序列使用尽可能多的相邻十六进制数字。正在将C
解析为十六进制数字
使用\x
,可以组合两个相邻的字符串文本
printf("**TABLE 24A (20\xDF""C)**");
或者使用\unnn
Unicode转义,该转义限制为四个十六进制字符
printf("**TABLE 24A (20\u00DFC)**");
或八进制\nnn
:
printf("**TABLE 24A (20\337C)**");
关于\u00DFC
?您是否尝试过将%c用于\xDF?unicode选项在我的c编译器中不起作用。它给出以下警告:通用字符名称仅在C++和C99中都有效,八进制和组合两个相邻字符串文字工作良好,谢谢您的帮助!问候理查德