c - 有没有办法改变C中的文本颜色?
问题描述
我在 Ubuntu 18.04 上使用 GCC。我希望文本是不同的颜色。
例如:
printf("hello world");
我尝试使用 conio.h 但编译器给我一个错误,即 conio.h 不可用。我怎样才能实现它?
解决方案
<conio.h>
对于 Windows 来说是典型的。在 Linux 中,您将一些控制代码放入字符串中。大多数资料都描述了如何在 bash 中做到这一点(比如这个How to change the output color of echo in Linux),但是您可以在 C 中轻松使用它。所以首先您可以使用 hexdump 来获取 bash 中的序列如何转换为字符串:
$ echo -e "\033[0;31m" foo #this print foo in red
foo
$ echo -e "\033[0;31m" foo | hexdump -C
00000000 1b 5b 30 3b 33 31 6d 20 66 6f 6f 0a |.[0;31m foo.|
0000000c
如您所见,只需将第一部分更改为二进制代码 0x1b。
最后我用 C 编写代码:
#include <stdio.h>
int main () {
printf("%c[0;31mFOO\n", 0x1b);
return 0;
}
并将FOO打印为红色。实际上它不会改变颜色,但我不在乎,因为我有颜色提示。:)
推荐阅读
- c++ - WINAPI 事件对象意外行为
- asp.net-mvc - 即使我可以看到它在浏览器中进行检查,图像也不会显示
- python - Python - 从字典中更改原始数据框对象?
- sql - 屏蔽列时从表中选择
- python - ecdsa 签名密钥格式
- python - 如何将 Keras MNIST 数据集与我自己的 MNIST 图像结合起来?
- html - 如何关闭输入和跨度html元素之间的边缘?
- django - django manytomany 模型关系在对象创建时崩溃管理员
- javascript - 在javascript问题中更改图像src的值
- jquery - Bootstrap Validator - 不提交表单