回 帖 发 新 帖 刷新版面

主题:请高手帮帮忙,c++里 怎样可以让输出的字变颜色,越详细越好!

请高手帮帮忙,c++里 怎样可以让输出的字变颜色,越详细越好!

回复列表 (共3个回复)

沙发

#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;   

}

板凳

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 楼

发现一种简单的方式 
使用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    打印文本文件。



这些功能相当不错

我来回复

您尚未登录,请登录后再回复。点此登录或注册