Nathaniel Jobs
Nathaniel Jobs

Reputation: 162

Clearing output of a terminal program in Linux C

I want to clear the output of a C program produced with printf statements. I want to clear only one line, for example:

[source]

printf("AAAAAAAAAAAAAA\n");
printf("BBBBBBBBBBBBBB\n");
printf("CCCCCCCCCCCCCC\n");
printf("DDDDDDDDDDDDDD\n");

[terminal]

AAAAAAAAAAAAAA
BBBBBBBBBBBBBB
CCCCCCCCCCCCCC
DDDDDDDDDDDDDD

[I hope]

AAAAAAAAAAAAAA
BBBBBBBBBBBBBB
CCCCCCCCCCCCCC

I will "DDDDDDDDDDDDDD" line in write other string. I just want the above A, B, C sentences to left. Only clear D sentences to change the other sentences, unconditionally output D sentences.

How do I do this?

Upvotes: 2

Views: 27353

Answers (3)

kandelvijaya
kandelvijaya

Reputation: 1585

I tried answering for what is best expected here.

printf("AAAAAAAAAAAAAA");
printf("BBBBBBBBBBBBBB");
printf("CCCCCCCCCCCCCC");
//printf("DDDDDDDDDDDDDD");

comment the last line or delete if you dont want to display in terminal. printf("xxxx") is the statement used for printing output in terminal.

Upvotes: 0

Naruil
Naruil

Reputation: 2310

There're several ways to delete the DDDDDDDDDDDDDD

  1. Print backspace several times
printf("\b");
  1. Print carriage-return and then print something to override the original line
printf("\r");
  1. If you are in a newline. You may use terminal commands to move your cursor

such as printf("\033[8;5Hhello"); // Move to (8, 5) and output hello

Other commands:

printf("\033[XA"); // Move up X lines;
printf("\033[XB"); // Move down X lines;
printf("\033[XC"); // Move right X column;
printf("\033[XD"); // Move left X column;
printf("\033[2J"); // Clear screen
...
  1. Don't forget ncurses

It is the best ways to control the exact layout and format in a terminal

Upvotes: 14

someone
someone

Reputation: 361

If you are using X-Term compatibles (Gnome Terminal included), then print the following

printf("\033[2J");

or

cout << "\033[2J";

where \033 is the escape character in ASCII and [2J is the specific action (clear).

Upvotes: 2

Related Questions