Установка цвета текста stdout / stderr в Windows

Я пробовал использовать систему ("цвет 24"); , но это не изменило цвет в приглашении. Итак, после продолжительного поиска в Google я увидел SetConsoleTextAttribute и написал приведенный ниже код.

В результате оба stdout и stderr стали красными вместо stdout зеленый, а stderr красный.

Как решить эту проблему? Моя подсказка теперь тоже красная, но меня это не волнует, так как я знаю, как это исправить.

Должно работать в Windows 7. На данный момент я ' m, создавая это из командной строки (используя VS 2010 cl) и запуская ее в обычном приглашении cmd

#include <windows.h>
#include <stdio.h>
int main(int argc, char **argv)
{
    int i;
    unsigned long totalTime=0;


    HANDLE hConsoleOut; //handle to the console
    hConsoleOut = GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleTextAttribute(hConsoleOut, FOREGROUND_GREEN);

    HANDLE hConsoleErr;
    hConsoleErr = GetStdHandle(STD_ERROR_HANDLE);
    SetConsoleTextAttribute(hConsoleErr, FOREGROUND_RED);

    fprintf(stdout, "%s\n", "out");
    fprintf(stderr, "%s\n", "err");
    return 0;
}
6
задан jotik 24 May 2016 в 08:54
поделиться