c未知的转义序列

  • 本文关键字:转义序列 未知
  • 更新时间 :
  • 英文 :


我正在尝试打印一个显示温度表的字符串printf("TABLE 24A (20°C)");

度数符号是一个常数,我定义为0xDF,所以字符串看起来像这样:"TABLE 24A (20xDF C)"

这是有效的,但由于xDFC之间的空间,看起来不正确。如果我删除空间,编译器会发出警告十六进制转义序列超出范围

如果我将字符串修改为"TABLE 24A (20xDFC)",我会得到正确的结果,但编译器会发出警告未知转义序列:'\C'

有没有一种方法可以去掉警告,但失去两个字符之间的空间?

您可以利用连续字符串文字自动连接的事实:

 printf("**TABLE 24A (20xDF" "C)**");

这可以防止解析器为转义序列消耗比您想要的更多的字符。

您也可以将字符作为参数传入,并使用%c格式说明符打印它:

printf("**TABLE 24A (20%cC)**", 'xDF');

x转义序列消耗尽可能多的相邻十六进制数字。C被解析为十六进制数字。

使用x,可以组合两个相邻的字符串文字。

printf("**TABLE 24A (20xDF""C)**");

或者使用unnnn Unicode转义,该转义限制为四个十六进制字符。

printf("**TABLE 24A (20u00DFC)**");

或八进制nnn:

printf("**TABLE 24A (20337C)**");

最新更新