【发布时间】:2020-10-19 04:01:25
【问题描述】:
我正在使用 Xcode 并尝试向控制台显示彩色输出。它不起作用,我不知道为什么,我查看了其他堆栈溢出帖子并尝试了有效的代码。 感谢您的帮助!
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define ANSI_COLOR_RESET "\x1b[0m"
#define ANSI_COLOR_CYAN "\x1b[36m"
void dispWrongs(char guess, int wordLength);
int main(void) {
srand(time(NULL)); //sends a "seed" for random number generation
printf(ANSI_COLOR_CYAN " _ _ \n");
printf(ANSI_COLOR_CYAN " ___ ___ _ _ _ __ | |_ _ __(_) ___ ___ \n");
printf(ANSI_COLOR_CYAN " / __/ _ \\| | | | '_ \\| __| '__| |/ _ \\/ __\\ \n");
printf(ANSI_COLOR_CYAN "| (_| (_) | |_| | | | | |_| | | | __/\\__ \\ \n");
printf(ANSI_COLOR_CYAN " \\___\\___/ \\__,_|_| |_|\\__|_| |_|\\___||___/"ANSI_COLOR_RESET"\n");
return 0;
}
【问题讨论】:
-
您的代码应该可以工作。但请确保您的终端支持这一点。那么,你用什么终端呢?
-
终端是什么意思?我正在使用 Xcode
-
XCode 的内置输出窗口很可能不支持 ANSI 颜色代码。当人们说“终端”时,他们指的是您与 Shell 交互的操作系统的命令行界面。在 Mac OSX 上,甚至还有一个名为 Terminal 的内置程序。也许从在那里运行你的程序开始。
-
这些字符串
"\x1b[..."是使您的输出可见的软件的控制序列,通常称为“终端”,因为它是数据传输的终端。所以这个软件必须解释这些字符串并设置颜色或执行序列应该表示的任何事情。如果软件不支持这些序列,您将看不到所需的效果,在您的情况下是颜色。
标签: c output-formatting