最近用 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; }
终端字体和背景的颜色如下:
前景颜色值 | 背景颜色值 | 颜色 |
---|---|---|
30 | 40 | 黑色 |
31 | 41 | 红色 |
32 | 42 | 绿色 |
33 | 43 | 棕色 |
34 | 44 | 蓝色 |
35 | 45 | 品红色 |
36 | 46 | 孔雀蓝色 |
37 | 47 | 白色 |
以上是常用的控制. 更多信息, 参考这里 .