Home > Blockchain >  hex escape sequence out of range for numeric escape of C
hex escape sequence out of range for numeric escape of C

Time:12-08

When I printf following code, I get hex escape sequence out of range. \x1b is numeric escape for ESC. If my string is literally the 1ESC1, how to represent it?

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

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

CodePudding user response:

suggest correcting the syntax:

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

CodePudding user response:

"\x1b is numeric escape for ESC" is true, but the hex escape sequence here is \x1b1, not \x1b.

Avoid printf(st) to print a string st. The first argument to printf() is for a format. OK in OP's case, but better to avoid that maybe some escape sequence was used that was the same as %.

Try puts("1" "\x1b" "1");.

  • Related