当前位置: 首页 > 面试题库 >

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

仲孙毅
2023-03-14
问题内容

我有兴趣清除由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;
}


 类似资料:
  • 问题内容: 好的,我一直在研究如何执行此操作,但是说我正在运行一个程序,该程序在终端上有很多输出,如何清除程序中的屏幕以使程序保持运行状态? 我知道我可以只输入终端,然后将其清除就可以了,但是就像我说的那样,对于这个程序,这对我来说会更有利。 我找到了可行的方法,但是我不确定它是什么或正在做什么。 那行得通,但是我不知道它是什么,如果您能解释一下,我将不胜感激。 问题答案: 这些是ANSI转义码。

  • 问题内容: 使用终端上的命令只会使用户误以为屏幕已被清除…使用鼠标滚动时,您仍然可以看到以前命令的输出。当您淹没在文本海啸中时,这将使生活变得困难。 可以在Internet上找到的各种解决方案(转义码等)只是clear命令已经完成的工作的变体。 那么,如何真正清除Linux中终端的内容呢? 问题答案: 使用以下命令可以清晰显示屏幕,而不仅仅是添加新行… 是的,这是bash提示上的“ printf”

  • 问题内容: 是否存在任何标准的“自带电池”方法可以从Python脚本中清除终端屏幕,还是我必须诅咒(库,而不是文字)? 问题答案: 那么转义序列呢?

  • 问题内容: 运行GO脚本时,Golang中是否有任何标准方法可以清除终端屏幕?还是我必须使用其他一些库? 问题答案: 注意: 运行命令以清除屏幕不是安全的方法。在这里也检查其他答案。 您必须为每个不同的OS定义一个清晰的方法,像这样。当用户的操作系统不受支持时,它会慌乱 (命令执行来自@merosss的答案)

  • 问题内容: 我正在为Swift2中的命令行编写BASIC解释器,但是我找不到实现简单命令CLS(从终端清除所有文本的方法)的方法。我应该只是在循环中打印空格还是有功能?我不知道那会清除终端屏幕吗? 问题答案: 将内置命令与 或(询问Google) 或者,通过命令行使用AppleScript模拟Ctrl + L的按下: 编辑:在较新版本的Swift中不再可用。

  • 问题内容: 有没有办法用nasm清除终端窗口中的屏幕?通过清除屏幕,我的意思是模仿热键。从窗口中删除所有文本。 是否可以在nasm组装中进行? 提前致谢, 赖利 问题答案: 在Bash中: 在C中: 我如何找到字符串: