我试过这个solution,ansicon工作正常,我可以从批处理文件中输出彩色文本:
@echo ←[1m←[31mTESTANSI←[0m
但是当我运行这个程序时:
#include <stdio.h>
int main () {
printf("\x1b[31mTESTANSI");
return 0;
}
我看不到颜色,但是这个:
←[31mTESTANSI
编辑:这是一个适合我的简单winapi解决方案。它基于此article
#ifndef __CONCOL_H__
#define __CONCOL_H__
#include <windows.h>
enum concol {
black, dark_blue, dark_green, dark_cyan, dark_red, dark_purple, dark_yellow, dark_white,
gray, blue, green, cyan, red, purple, yellow, white
};
inline void setcolor(enum concol textcol, enum concol backcol) {
textcol %= 16;
backcol %= 16;
unsigned short wAttributes = ((unsigned) backcol << 4) | (unsigned) textcol;
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), wAttributes);
}
#endif /*__CONCOL_H__*/
答案 0 :(得分:0)
Windows 7控制台做了一些奇怪的事情,你的程序在Mac上运行良好。
您必须在使用/ kansicon自行启动的控制台中执行该程序。
如果您直接从资源管理器运行该程序,控制台可能无法启动ansi支持...这是垂死平台的另一个缺点。