可通过以下两种方法解决:
方法1. 用windows api. 如下代码输出123(高亮绿色前景白色背景)456(高亮黄色前景白色背景)在同一行。
#include <stdio.h>
#include <windows.h>
int main(){
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(hConsole, FOREGROUND_INTENSITY | BACKGROUND_INTENSITY| FOREGROUND_GREEN |BACKGROUND_RED|BACKGROUND_GREEN|BACKGROUND_BLUE);
printf("123");
SetConsoleTextAttribute(hConsole, FOREGROUND_INTENSITY| BACKGROUND_INTENSITY| FOREGROUND_RED | FOREGROUND_GREEN |
BACKGROUND_RED|BACKGROUND_GREEN|BACKGROUND_BLUE);
printf("456");
getchar();
return 0;
}
这里FOREGROUND_GREEN可以换成1-255的数字,表示不同配色。
方法2, 使用ansi颜色码。
两步:
I. 修改c:\windows\system32\CONFIG.NT文件,在最后添加一行:
device=%SystemRoot%\system32\ansi.sys
II. 然后c程序里用ansi颜色码,控制输出。 例如,输出一个绿色的123和一个黄色的456:
printf("\033[32m123\033[33m456\n");
呃...OGL倒是会用,不过我想要一个命令行的效果=w=...所以真的没办法了么...?貌似TC里的textcolor+cprintf可以用,但是TC的编译器总是让人莫名其妙...貌似标准不一样?
追答那我就不清楚了,话说你在命令行下写颜色字是准备干嘛呢?
追问想做个命令行下的游戏【←纯属是我闲的蛋疼...
目前找到方法了,用的Windows的API,谢了
?
追答使用TC2.0编程。