清除终端程序Linux C / C ++的输出

我有兴趣清除由printf语句生成的C程序的输出,该语句长多行。

我最初的猜测是使用

 printf("output1\n");

printf("output2\n");

rewind(stdout);

printf("output3\n");

printf("output4\n");

但这产生了

 output1

output2

output3

output4

我希望它会产生

 output3

output4

有谁知道如何获得后者的结果?

回答:

如果您还记得同时删除了控制字符,则可以在端子和管道上获得理想的结果。这是硬编码的两行。

#include <stdio.h>

int

main ()

{

fputs("output1\n",stdout);

fputs("output2\n",stdout);

fputs("\033[A\033[2K\033[A\033[2K",stdout);

rewind(stdout);

ftruncate(1,0); /* you probably want this as well */

fputs("output3\n",stdout);

fputs("output4\n",stdout);

return 0;

}

以上是 清除终端程序Linux C / C ++的输出 的全部内容, 来源链接: utcz.com/qa/417304.html

回到顶部