1

这可能吗?

我知道可以在命令提示符下使用 COLOR ##

但是在C语言中可以使用流血吗?

谢谢,

4

2 回答 2

2

什么操作系统?你有什么终端可用?请注意,这与C无关,更不用说流血事件了。您输出一个字符串,终端可能会或可能不会选择将其解释为颜色。你必须看看如何用你的终端来做到这一点。该解决方案当然是不可移植的。支持转义序列的终端的一个这样的例子是

printf("\\x1b[1;33mThis is yellow\\x1b[m(Back to default)\n");

您可能对ANSI 终端的颜色转义序列感兴趣

您可能还想寻找为有限数量的终端执行此操作的库。例如,ncurses可以在 Linux 中为您提供帮助。

于 2012-05-31T16:45:15.360 回答
1

如果您使用 *nix、osx 或在 Windows 上使用 cygwin msys,您的终端应该支持 Fred Larson 提到的 ANSI 序列(不确定 osx)。普通的 windows 终端没有。但是bloodshed可以使用cygwin,所以你很幸运。

这是一个例子:

#include <stdio.h>

#define BOLDMAGENTA "\033[1;35m"
#define BOLDGREEN "\033[1;32m"

int main(void) {
    printf("%shello %sworld\n", BOLDMAGENTA, BOLDGREEN);
    return 0;
}

请注意,这会使终端保持亮绿色,但如果您的提示设置了颜色,它将被重置。

以下是 ANSI 转义码的一些解释: http ://en.wikipedia.org/wiki/ANSI_escape_code

于 2012-05-31T16:55:25.463 回答