清除终端程序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