Reputation: 43
printf("\e[2J\e[0;0H");
What does this line mean?
Can I know what to learn and from where to understand this statement?
Upvotes: 3
Views: 296
Reputation: 153517
"\e"
as an escape sequence is not part of the C standard.
A number of compilers treat the otherwise undefined behavior as a character with the value of 27 - the ASCII escape character.
Alternative well defined code:
//printf("\e[2J\e[0;0H");
printf("\x1B[2J\x1b[0;0H");
printf("\033[2J\033[0;0H");
#define ESC "\033"
printf(ESC "[2J" ESC "[0;0H");
The escape character introduces ANSI escape sequences as well answered in @Mickael B.. Select terminals implement some of these sequences.
Upvotes: 1
Reputation: 5215
They are ANSI escape sequences
These sequences define functions that change display graphics, control cursor movement, and reassign keys.
It starts with \e[
and the following characters define what should happen.
2J
: clears the terminal
Esc[2J
Erase Display: Clears the screen and moves the cursor to the home position (line 0, column 0).
0;0H
moves the cursor to the position (0, 0)
Esc[Line;ColumnH
Cursor Position: Moves the cursor to the specified position (coordinates).
See also:
Upvotes: 0