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

转载于:https://www.cnblogs.com/idyllcheung/p/11311035.html

Logo

更多推荐