主题:请高手帮帮忙,c++里 怎样可以让输出的字变颜色,越详细越好!
c++初来咋到
[专家分:0] 发布于 2010-05-25 12:13:00
请高手帮帮忙,c++里 怎样可以让输出的字变颜色,越详细越好!
回复列表 (共3个回复)
沙发
liudan319 [专家分:3780] 发布于 2010-05-26 08:29:00
#include <iostream.h>
#pragma argsused
int main(int argc, char* argv[])
{
COORD CurPos;
DWORD nBytesWrite;
HANDLE hCon = GetStdHandle(STD_OUTPUT_HANDLE);
CONSOLE_SCREEN_BUFFER_INFO ConInfo;
//控制台信息
SetConsoleTitle("程序执行时控制台视窗的标题");
GetConsoleScreenBufferInfo(hCon, &ConInfo);
//执行清屏命令
CurPos.X = ConInfo.srWindow.Left;
CurPos.Y = ConInfo.srWindow.Top;
FillConsoleOutputAttribute(hCon, FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE, ConInfo.dwSize.X*ConInfo.dwSize.Y, CurPos, &nBytesWrite);
FillConsoleOutputCharacter(hCon, 0x20, ConInfo.dwSize.X*ConInfo.dwSize.Y, CurPos, &nBytesWrite);
//移动光标,设置颜色
SetConsoleCursorPosition(hCon, CurPos);
SetConsoleTextAttribute(hCon, FOREGROUND_GREEN|FOREGROUND_INTENSITY|BACKGROUND_BLUE);
//输出文字
cout << "屏幕中央显示蓝色背景的绿色文字";
cout << "Press Enter...";
return 0;
}
板凳
p544289998 [专家分:60] 发布于 2010-05-31 08:10:00
int main(int argc, char* argv[])
argc 默认为1
argv[]的值是从命令行获取的
在main函数里
先使用consolehwnd = GetStdHandle(STD_OUTPUT_HANDLE);获得控制台输出句柄
可以使用SetConsoleTitle()函数设置控制台的标题
SetConsoleTextAttribute: 设置前景色 (文本) 和背景颜色属性的字符写入控制台屏幕缓冲区。
使用方法是在COUT前设置缓冲区的文字的前景和背景色
SetConsoleTextAttribute(consolehwnd,i); //consolehwnd是获得的句柄 i是0到255的任意值
cout<<"i am dadalili!"<<endl;
测试程序
#include <iostream.h>
#include <windows.h>
int main(int argc, char* argv[])
{
HANDLE consolehwnd;
consolehwnd = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTitle("测试");
int i=0;
SetConsoleTextAttribute(consolehwnd,i);
cout<<"cscscscscscscscscscsc!"<<endl;
for(i=1;i<256;i+=2)
{
SetConsoleTextAttribute(consolehwnd,i);
cout<<"cscscscscscscscscs!"<<endl;
}
SetConsoleTextAttribute(consolehwnd,255);
return 0;
}
3 楼
p544289998 [专家分:60] 发布于 2010-06-04 09:03:00
发现一种简单的方式
使用system()函数
可以很方便的改变控制台输出的字体和背景的颜色
system("color 27") //color后边两位数为00~FF 设置前景色(字体颜色)和背景色
#include <process.h>和#include <stdlib.h>调用时用到的头文件
system函数 是可以调用一些DOS命令,比如
system("cls");//清屏,等于在DOS上使用cls命令
下面列出常用的DOS命令,都可以用system函数调用:
ASSOC 显示或修改文件扩展名关联。
AT 计划在计算机上运行的命令和程序。
ATTRIB 显示或更改文件属性。
BREAK 设置或清除扩展式 CTRL+C 检查。
CACLS 显示或修改文件的访问控制列表(ACLs)。
CALL 从另一个批处理程序调用这一个。
CD 显示当前目录的名称或将其更改。
CHCP 显示或设置活动代码页数。
CHDIR 显示当前目录的名称或将其更改。
CHKDSK 检查磁盘并显示状态报告。
CHKNTFS 显示或修改启动时间磁盘检查。
CLS 清除屏幕。
CMD 打开另一个 Windows 命令解释程序窗口。
COLOR 设置默认控制台前景和背景颜色。
COMP 比较两个或两套文件的内容。
COMPACT 显示或更改 NTFS 分区上文件的压缩。
CONVERT 将 FAT 卷转换成 NTFS。您不能转换
当前驱动器。
COPY 将至少一个文件复制到另一个位置。
DATE 显示或设置日期。
DEL 删除至少一个文件。
DIR 显示一个目录中的文件和子目录。
DISKCOMP 比较两个软盘的内容。
DISKCOPY 将一个软盘的内容复制到另一个软盘。
DOSKEY 编辑命令行、调用 Windows 命令并创建宏。
ECHO 显示消息,或将命令回显打开或关上。
ENDLOCAL 结束批文件中环境更改的本地化。
ERASE 删除至少一个文件。
EXIT 退出 CMD.EXE 程序(命令解释程序)。
FC 比较两个或两套文件,并显示
不同处。
FIND 在文件中搜索文字字符串。
FINDSTR 在文件中搜索字符串。
FOR 为一套文件中的每个文件运行一个指定的命令
FORMAT 格式化磁盘,以便跟 Windows 使用。
FTYPE 显示或修改用于文件扩展名关联的文件类型。
GOTO 将 Windows 命令解释程序指向批处理程序
中某个标明的行。
GRAFTABL 启用 Windows 来以图像模式显示
扩展字符集。
HELP 提供 Windows 命令的帮助信息。
IF 执行批处理程序中的条件性处理。
LABEL 创建、更改或删除磁盘的卷标。
MD 创建目录。
MKDIR 创建目录。
MODE 配置系统设备。
MORE 一次显示一个结果屏幕。
MOVE 将文件从一个目录移到另一个目录。
PATH 显示或设置可执行文件的搜索路径。
PAUSE 暂停批文件的处理并显示消息。
POPD 还原 PUSHD 保存的当前目录的上一个值。
PRINT 打印文本文件。
这些功能相当不错
我来回复