Windows 平台下,conio.h 中有许多操作控制台颜色、格式的函数。但是再 Linux 平台下却没有类似的函数。经过在网上的一番搜索,找到了解决此问题的方法——转义字符\e。
注意,\e这种写法可能并不被你的编译器所支持(Linux下的GNU和Bash支持,亲测无误),因为他并不是ANSI C的。可以用\033代替。
此种方式在 Windows 下无效。
注意:格式更改之后,即使更改他的程序退出,格式也会保留,除非使用代码0清除或退出这个终端。
1. 输出格式
使用以下代码更改输出格式:
printf("\e[%dm", format);
其中format是格式代码:
代码十进制 作用
0 清除所有格式
1 加粗,与格式2冲突
2 字体变暗,与格式1冲突
3 斜体
4 下划线
5 背景加亮,但有的机器上没效果
6 并没有效果
7 反显(背景色当前景色,前景色当背景色)
8 隐形(字符仍然存在,可以选中,只是看不到)
9 删除线
2. 颜色
使用以下代码字符色:
printf("\e[%dm", 30 + color); // 前景色
printf("\e[%dm", 40 + color); // 背景色
其中,color是颜色代码:
代码十进制 颜色
0 黑色,注意和控制台的背景色稍有区别
1 红色
2 绿色
3 黄色
4 蓝色
5 紫色
6 青色
7 白色,但实际上是亮灰色
注意:清除格式同样会恢复默认颜色。
3. 其他指令
使用以下代码执行控制台指令:
printf("\e%s", cmd);
其中cmd是指令字符串:
指令字符串 作用
c 清除屏幕,不可恢复
[y;xH] 将光标移至第x列第y行处
[nA 将光标上移n行
[nB 将光标下移n行
[nC 将光标右移n行
[nD 将光标左移n行
[K 清除从光标(包括)到行末的内容
[s 记录光标的位置(只能记一次)
[u 恢复光标的位置
[?25l 显示光标
[?25h 隐藏光标
本文不定期更新
---------------------
版权声明:本文为CSDN博主「wxy_2015」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/wxy_2015/article/details/50640101
所有评论(0)