[英]Enabling ANSI escape code processing on the modern Windows command line? [C]
我听说现代 Windows 控制台支持ANSI 转义码(COLORS),但您必须启用它们。
使用 Windows 10 的 19042.746 版本,使用SetConsoleMode(consoleHandle, ENABLE_VIRTUAL_TERMINAL_PROCESSING); 启用它应该只是一件简单的事情; // 来自 windows.h ,但设置后,它仍然不支持 ANSI 转义 colors。我错过了什么?
现实生活中的例子
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleMode(hConsole, ENABLE_VIRTUAL_TERMINAL_PROCESSING);
printf("\033[32mThis is green");
打印出来
[31mThis is green
资料来源:
您还需要添加ENABLE_PROCESSED_OUTPUT
。 您需要先使用 GetConsoleMode 获取当前模式(它通常包含ENABLE_PROCESSED_OUTPUT
),然后将ENABLE_VIRTUAL_TERMINAL_PROCESSING
添加到模式中:
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
DWORD mode = 0;
GetConsoleMode(hConsole, &mode); //
SetConsoleMode(hConsole, mode | ENABLE_VIRTUAL_TERMINAL_PROCESSING);
printf("\033[32mThis is green");
结果:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.