//跟随代码一旦改变颜色,然后他们一直保持它们,//如果我想用不同的颜色写一个单词,如cout<<“4June”//应该用红色的jxt文本的颜色应该改变不是背景//颜色,如果我显示的东西像cout<<“颜色没有改变”;那么//颜色应该是原始颜色,如何获得那个c ++ ????
#include <iostream>
#include <windows.h>
#include <winnt.h>
#include <stdio.h>
#include "stdafx.h"
using namespace std;
int main(int argc, char* argv[])
{
HANDLE consolehwnd = GetStdHandle(STD_OUTPUT_HANDLE);
cout << "this text is not colorized\n";
SetConsoleTextAttribute(consolehwnd, FOREGROUND_RED);
cout << "this text shows as red\n";
SetConsoleTextAttribute(consolehwnd, FOREGROUND_BLUE);
cout << "this text shows as blue\n";
}
OR
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),1)
OR
system("color 3");
cout<<"colour changed"<<endl;**
答案 0 :(得分:3)
如果您希望将red
文字投放到black
背景,则只需输入SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),4); cout<<"4th June";
要重置为正常颜色,请将其设置为颜色7
。 SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),7);
以下是所有控制台颜色的表格。只需输入上图中的颜色代码编号即可制作256种组合,以获得所需的颜色。
以下是一些控制台颜色管理代码。
#include <windows.h>
#include <iostream>
using namespace std;
void gotoxy(int x, int y);
void setcolor(WORD color);
void setForeGroundAndBackGroundColor(int ForeGroundColor,int BackGroundColor);
void clrscr();
void printAllColors();
int main()
{
// set red text on black background
gotoxy(30,10);
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),4); cout<<"4th June";
// set white text on black background
gotoxy(1,23);
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),7);
return 0;
}
void setcolor(WORD color)
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),color);
return;
}
void setForeGroundAndBackGroundColor(int ForeGroundColor,int BackGroundColor)
{
int color=16*BackGroundColor+ForeGroundColor;
setcolor(color);
}
void gotoxy(int x, int y)
{
COORD coord;
coord.X = x; coord.Y = y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
return;
}
void clrscr()
{
COORD coordScreen = { 0, 0 };
DWORD cCharsWritten;
CONSOLE_SCREEN_BUFFER_INFO csbi;
DWORD dwConSize;
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
GetConsoleScreenBufferInfo(hConsole, &csbi);
dwConSize = csbi.dwSize.X * csbi.dwSize.Y;
FillConsoleOutputCharacter(hConsole, TEXT(' '), dwConSize, coordScreen, &cCharsWritten);
GetConsoleScreenBufferInfo(hConsole, &csbi);
FillConsoleOutputAttribute(hConsole, csbi.wAttributes, dwConSize, coordScreen, &cCharsWritten);
SetConsoleCursorPosition(hConsole, coordScreen);
return;
}
void printAllColors()
{
int ix=0;
int iy=1;
int col=0;
setcolor(7);
clrscr();
// Demo setForeGroundAndBackGroundColor
for (int i =0;i<16;i++)
{
for(int j=0;j<16;j++)
{
setForeGroundAndBackGroundColor(i,j);
gotoxy(i*5 , iy+j); cout<<""<<i + (16 *j)<<"";
col++;
}
}
setcolor(31);
cout<<"\n";
gotoxy(1,23);
}
/*
Color Background Foreground
---------------------------------------------
Black 0 0
Blue 1 1
Green 2 2
Cyan 3 3
Red 4 4
Magenta 5 5
Brown 6 6
White 7 7
Gray - 8
Intense Blue - 9
Intense Green - 10
Intense Cyan - 11
Intense Red - 12
Intense Magenta - 13
Yellow - 14
Intense White - 15
*/