c - 未知转义序列

标签 c

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

度数符号是我定义为 0xDF 的常量,因此字符串如下所示:"TABLE 24A (20\xDF C)"

这有效但看起来不正确,因为 \xDFC 之间有空格。 如果我删除空格,编译器会发出警告 hex escape sequence out of range

如果我将字符串修改为 "TABLE 24A (20\xDF\C)" 我得到了正确的结果,但编译器发出警告 unknown escape sequence: '\C'

有没有办法去掉警告但去掉两个字符之间的空格?

最佳答案

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

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

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

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

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

关于c - 未知转义序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38482586/

相关文章:

C While 循环在 EOF 处停止,但在新行中打印结果

c - 我怎样才能加快crc32计算?

c - C中的只读字符串

c - 全局变量和结构体数组

c - 如何将公钥存储为c数组

c++ - 优化输送机执行

c - 将 MinGW 程序与 MSVC 静态库链接时发出警告

c - 函数 main 从子例程接收到不正确的值

c - LoRaWAN OTAA协议(protocol)规范

c - FAT 文件系统和大量写入