【问题标题】:hex escape sequence out of range for numeric escape of C十六进制转义序列超出 C 的数字转义范围
【发布时间】:2022-01-13 03:36:13
【问题描述】:

当我printf 跟随代码时,我得到hex escape sequence out of range\x1bnumeric escape 对应于 ESC。如果我的字符串字面意思是1ESC1,如何表示?

#include <stdlib.h>
#include <stdio.h>

int main(void){
    printf("1\x1b1\n");
    return EXIT_SUCCESS; 
}

【问题讨论】:

标签: c syntax


【解决方案1】:

建议更正语法:

printf("1\x1b\1\n");

【讨论】:

  • 谢谢,它有效!你能解释一下第二个``的语法吗?请告诉我术语或参考文献。
【解决方案2】:

"\x1b is numeric escape for ESC" 是真的,但是这里的十六进制转义序列\x1b1,而不是\x1b

避免 printf(st) 打印 字符串 stprintf() 的第一个参数是格式。在 OP 的情况下可以,但最好避免使用与 % 相同的转义序列。

试试puts("1" "\x1b" "1");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-16
    • 2016-08-15
    • 1970-01-01
    • 2018-01-22
    • 2016-06-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多