2015-02-23 2 views
0

Я попробовал этот solution и ansicon работает отлично, я могу выводить цветной текст из пакетного файла:ANSI цветовые коды в Windows 7 консоли с помощью ansicon

@echo ←[1m←[31mTESTANSI←[0m 

Но когда я запускаю эту программу:

#include <stdio.h> 
int main() { 
    printf("\x1b[31mTESTANSI"); 
    return 0; 
} 

Я не вижу цвета, но это:

←[31mTESTANSI 

Edit: здесь простое решение 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

Windows 7 консоли делает что-то странное, программа прекрасно работает на Mac.

Вы должны выполнить программу в консоли, которую вы начали с/kansicon.

Если вы запускаете программу непосредственно из проводника, консоль может не запускаться с включенной поддержкой ansi ... Еще один недостаток умирающей платформы.

+0

Новость о смерти Windows сильно преувеличена. –

+0

Я запустил программу внутри консоли, запущенной с/kansicon – Dill

Смежные вопросы