【发布时间】:2015-04-25 10:14:33
【问题描述】:
我试过这个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__*/
【问题讨论】: