【问题标题】:ANSI color codes in Windows 7 console using ansiconWindows 7 控制台中使用 ansicon 的 ANSI 颜色代码
【发布时间】: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__*/

【问题讨论】:

    标签: c windows console


    【解决方案1】:

    Windows 7 控制台做了一些奇怪的事情,您的程序在 Mac 上运行良好。

    您必须在使用 /kansicon 启动的控制台中执行程序。

    如果您直接从资源管理器运行程序,控制台可能无法在启用 ansi 支持的情况下启动...这是一个垂死平台的另一个缺点。

    【讨论】:

    • Windows 死机的消息被大大夸大了。
    • 我确实在以 /kansicon 开头的控制台中运行了程序
    猜你喜欢
    • 1970-01-01
    • 2011-09-11
    • 2011-03-17
    • 1970-01-01
    • 2023-04-07
    • 2015-01-10
    • 2021-01-02
    • 1970-01-01
    相关资源
    最近更新 更多