我假定您使用的是Windows,因爲您的system()
函數正在執行color
這是Windows的控制檯實用程序。
如果你打算寫你的Windows程序,並要更改文本和/或背景的顏色,使用這樣的:
SetConsoleTextAttribute (GetStdHandle(STD_OUTPUT_HANDLE), attr);
哪裏attr
是值與|
(位或運算符的組合),選擇是否要更改前景色或背景色。寫入控制檯的下一個功能(例如printf()
)適用更改。關於如何編碼attr
說法,這裏
詳情: http://msdn.microsoft.com/en-us/library/windows/desktop/ms682088%28v=vs.85%29.aspx#_win32_character_attributes
例如,該程序輸出「Hello World」使用黃色文字(紅+綠+強度)在藍色的背景,與Windows的計算機2000或更高:
#include <stdio.h>
#include <windows.h>
int main()
{
SetConsoleTextAttribute (GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED |
FOREGROUND_GREEN |
FOREGROUND_INTENSITY |
BACKGROUND_BLUE
);
printf ("Hello world\n");
return 0;
}
該另一顯示示出了用於前景和背景顏色的所有組合的彩色圖表:
#include <stdio.h>
#include <windows.h>
int main()
{
unsigned char b,f;
for (b=0;b<16;b++)
{
for (f=0;f<16;f++)
{
SetConsoleTextAttribute (GetStdHandle(STD_OUTPUT_HANDLE), b<<4 | f);
printf ("%.2X", b<<4 | f);
}
printf ("\n");
}
SetConsoleTextAttribute (GetStdHandle(STD_OUTPUT_HANDLE), 0x07);
printf ("\n");
return 0;
}
確實有比系統命令更好的方法,但它將取決於平臺,您沒有提及您使用的平臺。 –