Linux 控制终端

最近用 C++ 写一个基于终端的简单游戏时, 用到了 Linux 终端的一些控制方式. 整理一下以备查阅.

// 显示光标
void cursorHide() { cout << "\033[?25l" << flush; }

// 隐藏光标
void cursorShow() { cout << "\033[?25h" << flush; }

// 光标定位到第 y 行第 x 列, 也就是坐标 (x, y)
void cursorLocate(int x, int y) {
  cout << "\033[" << y << ";" << x << "H" << flush;
}

// 清除第 y 行的内容
void clearLine(int y) {
  cout << "\033[" << y << ";1H" << flush;
  cout << "\033[K" << flush;
}

// 设置终端前景或背景为指定颜色
void setColor(int color) {
  cout << "\033[" << color << "m" << flush;
}

// 恢复设置为默认值
void reset() { cout << "\033[0m" << flush; }

终端字体和背景的颜色如下:

前景颜色值背景颜色值颜色
3040黑色
3141红色
3242绿色
3343棕色
3444蓝色
3545品红色
3646孔雀蓝色
3747白色

以上是常用的控制. 更多信息, 参考这里 .