Tôi đã thử sử dụng system("color 24");
nhưng điều đó không thay đổi màu trong lời nhắc. Vì vậy, sau khi nhiều Googling tôi thấy SetConsoleTextAttribute
và đã viết mã dưới đây.Đặt màu chữ stdout/stderr trong Windows
Kết quả này ở cả hai stdout
và stderr
cả hai đều nhận được màu đỏ thay vì stdout
là màu xanh lá cây và stderr
là màu đỏ.
Làm cách nào để giải quyết vấn đề này? Lời nhắc của tôi hiện cũng là màu đỏ nhưng tôi không quan tâm đến điều đó vì tôi biết cách khắc phục.
nên làm việc trong Windows 7. Tại thời điểm tôi đang xây dựng này từ dấu nhắc (sử dụng VS 2010 cl) và chạy nó trong một thường xuyên cmd
nhắc
#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;
}
Tôi có thể thề là tôi đã thử điều đó. được chấp nhận –