簡體   English   中英

Windows 7控制台中使用ansicon的ANSI顏色代碼

[英]ANSI color codes in Windows 7 console using ansicon

我嘗試了此解決方案 ,並且ansicon正常工作,我可以從批處理文件中輸出彩色文本:

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

但是當我運行該程序時:

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

我看不到任何顏色,但這是:

←[31mTESTANSI

編輯:這是一個對我有用的簡單winapi解決方案。 它基於本文

#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__*/

Windows 7控制台做的事情很奇怪,您的程序在Mac上運行良好。

您必須在使用/ kansicon啟動的控制台中執行程序。

如果您直接從資源管理器中運行程序,則控制台可能不會在啟用ansi支持的情況下啟動。。。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM