修改终端中的文本

Loc*_*ead 3 c++ linux terminal console-application

是否可以在不清除屏幕的情况下修改我打印到终端的文本?

例如,如果我以百分比显示某些内容的进度,我是否可以修改该百分比而无需清除屏幕并再次打印?我正在寻找一种跨平台的方式,如果有的话.

谈论C++.

谢谢

Chr*_*egg 5

有很多方法可以做到这一点,根据您想要投入多少精力,您可以在终端窗口中使用ascii文本做很多很酷的事情.

  1. 高级:ncurses库

  2. 更简单:ansi转义字符printfcout

  3. 最简单:正如其他人所说,只需使用\r没有换行的回车.

编辑:使用ESC序列返回两个字符的示例:

#include <iostream>
#define ESC char(0x1B)

int main(){
  std::cout << "This will overwrite 'rs' in the following: characters" << ESC << "[2D" << "xx" << std::endl;
  return 0;
}
Run Code Online (Sandbox Code Playgroud)