web-dev-qa-db-fra.com

Comment changer le texte et la couleur de fond?

Je veux que chaque personnage soit d'une couleur différente.

par exemple,

cout << "Hello world" << endl;
  • Hserait rouge
  • e serait bleu
  • l serait orange et ainsi de suite.

Je sais que cela peut être fait, je ne connais tout simplement pas le code correspondant.

et je veux changer la couleur de fond en blanc. Comment je ferais ça? 

7
Tprice88

Il n'y a pas de moyen (standard) multi-plateforme de le faire Sous Windows, essayez d'utiliser conio.h.

textcolor(); // and
textbackground();

les fonctions.

Par exemple:

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

Vous pouvez utiliser la fonction system.

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

Pour l’arrière-plan et le premier plan, entrez un nombre compris entre 0 et 9 ou une lettre de A à F.

Par exemple:

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

Cela afficherait les lettres "hi" avec un fond vert et un texte bleu.

Pour voir tous les choix de couleurs, tapez simplement:

system("color %");

pour voir quel chiffre ou quelle lettre représente quelle couleur.

5
user3502455

SetConsoleTextAttribute .

HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(hStdOut, FOREGROUND_RED | BACKGROUND_BLUE | BACKGROUND_GREEN | BACKGROUND_RED);

Cela produirait du texte rouge sur un fond blanc.

5
Mike Kwan

Vous pouvez également utiliser la bibliothèque PDCurses. (http://pdcurses.sourceforge.net/)

2
Kacper Banasik
`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 << "\t\t"; // 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 << "\t\t\tPress 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)
}
2
Mujahid Riaz

Les couleurs sont codées en bits. Si vous souhaitez modifier la couleur du texte en langage C++, il existe plusieurs façons. Dans la console, vous pouvez modifier les propriétés de la sortie. cliquez sur cette icône de la console, sélectionnez Propriétés et modifiez la couleur ..__

La deuxième façon appelle les couleurs du système.

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

using namespace std;

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

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

    return 0;

}
0