在Linux C中清除终端程序的输出

时间:2013-06-09 03:57:50

标签: c linux unix terminal clear

我想清除使用printf语句生成的C程序的输出。我只想清除一行,例如:

[源]

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

[终端]

AAAAAAAAAAAAAA
BBBBBBBBBBBBBB
CCCCCCCCCCCCCC
DDDDDDDDDDDDDD

[我希望]

AAAAAAAAAAAAAA
BBBBBBBBBBBBBB
CCCCCCCCCCCCCC

我将“DDDDDDDDDDDDD”行写入其他字符串。 我只想要留下上面的A,B,C语句。 只清除D句改变其他句子, 无条件地输出D句子。

我该怎么做?

3 个答案:

答案 0 :(得分:11)

有几种方法可以删除DDDDDDDDDDDDD

1.多次打印退格

printf("\b");

2.打印回车,然后打印一些内容以覆盖原始行

printf("\r");

3.如果您在新行中。您可以使用终端命令移动光标

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

其他命令:

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
...

4.别忘了ncurses

这是控制终端中确切布局和格式的最佳方法

答案 1 :(得分:2)

你可以澄清一下这个问题吗?它不太清楚。无论如何,我试着回答这里最好的预期。

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

注释最后一行或删除如果您不想在终端中显示。 printf(“xxxx”)是用于在终端中打印输出的语句。

答案 2 :(得分:2)

如果您使用的是X-Term兼容机(包括Gnome终端),请打印以下内容

printf("\033[2J");

cout << "\033[2J";

其中\033 ASCII 中的转义字符,[2J是具体操作(清除)。