发个老外写的操作控制台背景颜色的头文件
测试代码:
另外也可以运用system函数加dos命令来改变控制台的情况,如:
纯属娱乐
- //ConsoleColor.h
- #pragmaonce
- #include<iostream>
- #include<windows.h>
- inlinestd::ostream&blue(std::ostream&s)
- {
- HANDLEhStdout=GetStdHandle(STD_OUTPUT_HANDLE);
- SetConsoleTextAttribute(hStdout,FOREGROUND_BLUE
- |FOREGROUND_GREEN|FOREGROUND_INTENSITY);
- returns;
- }
- inlinestd::ostream&red(std::ostream&s)
- {
- HANDLEhStdout=GetStdHandle(STD_OUTPUT_HANDLE);
- SetConsoleTextAttribute(hStdout,
- FOREGROUND_RED|FOREGROUND_INTENSITY);
- returns;
- }
- inlinestd::ostream&green(std::ostream&s)
- {
- HANDLEhStdout=GetStdHandle(STD_OUTPUT_HANDLE);
- SetConsoleTextAttribute(hStdout,
- FOREGROUND_GREEN|FOREGROUND_INTENSITY);
- returns;
- }
- inlinestd::ostream&yellow(std::ostream&s)
- {
- HANDLEhStdout=GetStdHandle(STD_OUTPUT_HANDLE);
- SetConsoleTextAttribute(hStdout,
- FOREGROUND_GREEN|FOREGROUND_RED|FOREGROUND_INTENSITY);
- returns;
- }
- inlinestd::ostream&white(std::ostream&s)
- {
- HANDLEhStdout=GetStdHandle(STD_OUTPUT_HANDLE);
- SetConsoleTextAttribute(hStdout,
- FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);
- returns;
- }
- structcolor{
- color(WORDattribute):m_color(attribute){};
- WORDm_color;
- };
- template<class_Elem,class_Traits>
- std::basic_ostream<_Elem,_Traits>&
- operator<<(std::basic_ostream<_Elem,_Traits>&i,color&c)
- {
- HANDLEhStdout=GetStdHandle(STD_OUTPUT_HANDLE);
- SetConsoleTextAttribute(hStdout,c.m_color);
- returni;
- }
- #include<iostream>
- #include"ConsoleColor.h"
- usingnamespacestd;
- intmain()
- {
- cout<<green<<"Thistextiswritteningreen"
- <<white<<std::endl;
- cout<<color(FOREGROUND_RED|FOREGROUND_GREEN)
- <<"Thistexthasareallyexitingcolor!"
- <<white<<std::endl;
- return0;
- }
另外也可以运用system函数加dos命令来改变控制台的情况,如:
- system("titlename");
- system("color2f");
- system("...");