c ++ - Hvordan ændrer du tekst og baggrundsfarve?

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg vil have enhver karakter til at være en anden farve.


for eksempel,


cout << "Hello world" << endl;



  • H ville være rødt

  • e ville være blå

  • l ville være orange
    og så videre.



Jeg ved, at dette kan gøres, jeg ved bare ikke koden til den.


og jeg vil ændre baggrundsfarven til hvid. Hvordan ville jeg gøre det?

Bedste reference


Der er ingen (standard) cross-platform måde at gøre dette på. På windows skal du prøve at bruge conio.h.
Det har:


textcolor(); // and
textbackground();


funktioner.


For eksempel:


textcolor(RED);
cprintf("H");
textcolor(BLUE);
cprintf("e");
// and so on.

Andre referencer 1


SetConsoleTextAttribute. [12]


HANDLE hStdOut = GetStdHandle(STD\_OUTPUT\_HANDLE);
SetConsoleTextAttribute(hStdOut, FOREGROUND\_RED | BACKGROUND\_BLUE | BACKGROUND\_GREEN | BACKGROUND\_RED);


Dette ville producere rød tekst på en hvid baggrund.

Andre referencer 2


Du kan bruge funktionen system.


system("color *background**foreground*");


For baggrund og forgrund, skriv et tal fra 0 - 9 eller et bogstav fra A - F.


For eksempel:


system("color A1");
std::cout<<"hi"<<std::endl;


Det ville vise bogstaverne 'hej' med en grøn baggrund og blå tekst.


For at se alle farvevalg, skriv blot:


system("color \%");


for at se, hvilket nummer eller bogstav der repræsenterer hvilken farve.

Andre referencer 3


Du kan også bruge PDCurses bibliotek. (Http://pdcurses.sourceforge.net/)

Andre referencer 4


`enter code here`#include <stdafx.h> // Used with MS Visual Studio Express. Delete line if using something different
#include <conio.h> // Just for WaitKey() routine
#include <iostream>
#include <string>
#include <windows.h>

using namespace std;

HANDLE console = GetStdHandle(STD\_OUTPUT\_HANDLE); // For use of SetConsoleTextAttribute()

void WaitKey();

int main()
{

    int len = 0,x, y=240; // 240 = white background, black foreground 

    string text = "Hello World. I feel pretty today!";
    len = text.length();
    cout << endl << endl << endl << "		"; // start 3 down, 2 tabs, right
    for ( x=0;x<len;x++)
    {
        SetConsoleTextAttribute(console, y); // set color for the next print
        cout << text[x];
        y++; // add 1 to y, for a new color
        if ( y >254) // There are 255 colors. 255 being white on white. Nothing to see. Bypass it
            y=240; // if y > 254, start colors back at white background, black chars
        Sleep(250); // Pause between letters 
    }

    SetConsoleTextAttribute(console, 15); // set color to black background, white chars
    WaitKey(); // Program over, wait for a keypress to close program
}


void WaitKey()
{
    cout  << endl << endl << endl << "			Press any key";
    while (\_kbhit()) \_getch(); // Empty the input buffer
    \_getch(); // Wait for a key
    while (\_kbhit()) \_getch(); // Empty the input buffer (some keys sends two messages)
}

Andre referencer 5


Farverne er bitkodede. Hvis du vil ændre tekstfarven i C ++-sprog Der er mange måder. I konsollen kan du ændre egenskaberne for output.click dette ikon på konsollen og gå til egenskaber og ændre farve.
[13]


Den anden måde kalder systemfarverne.


#include <iostream>
#include <stdlib.h>

using namespace std;

int main()
{
    //Changing Font Colors of the System

    system("Color 7C");
    cout << "			 ****CEB Electricity Bill Calculator****			 " << endl;
    cout << "			  ***                MENU           ***			  " <<endl;

    return 0;

}