我在Ubuntu 18.04上使用GCC。
我希望文字为其他颜色。
例如:
printf("hello world");
我尝试使用conio.h,但是编译器给我一个错误,提示conio.h不可用。我该如何实现?
答案 0 :(得分:1)
<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 。实际上,它不会改变颜色,但是我不在乎,因为我有颜色提示。 :)
答案 1 :(得分:0)
终端(通常在Windows上)通常受Ansi Escape codes控制。您可以使用它们来控制输出颜色或光标的位置。请参阅:How to make win32 console recognize ANSI/VT100 escape sequences?和https://docs.microsoft.com/en-us/windows/console/console-virtual-terminal-sequences