Hey guys. I've started programming about 4-5 days ago and I wanted to make my first "real" program. It was an idea I just got, it simply prompts the user to select colours and if they, say, want to use colour 2 and let's pretend 2 = blue, it would've made the text blue or background blue depending on the prompt. The system("color 09"); works fine, but obviously I need a switch instruction, however whenever I try to use my int function (Initailly a void function by accident), the compiler debugs it fine and the program works, but the colours don't change at all! Please help me!!! D: I've even tried directly pasting the switch program onto the main but it still didn't fix it. PS: SORRY ABOUT THE ITALIAN COMMENTS! Just ignore them xD
#include <iostream>
#include <Windows.h>
#include <stdlib.h>
#include <string>
#include <string.h>
usingnamespace std;
/* Background colours: Foregorund colours:
0 = Black 8 = Gray
1 = Blue 9 = Light Blue
2 = Green A = Light Green
3 = Aqua B = Light Aqua
4 = Red C = Light Red
5 = Purple D = Light Purple
6 = Yellow E = Light Yellow
7 = White F = Bright White
*/
// Questa funzione di tipo void colora il testo in base alla rispota dell'utente
void coloretesto(char a)
{
switch (a)
{
case 1: system("color 1c"); break;
case 2: system("color 1c"); break;
}
}
// Questa funzione di tipo void colora lo sfondo in base alla rispota dell'utente
// Questo programma chiede l'input all'utente per il cambio del colore del testo e dello sfondo della console
int main()
{
// Dichiarazione caratteri t(testo) e s(sfondo) e stringa risposta
char t, s;
string risposta;
// Richiesta dell'input per il colore del testo
restart:
cout << "Ciao! Di che colore vorresti il testo? " << endl;
// Colori disponibili da scegliere per il testo
cout << "1. Grigio\n2. Azzurro\n3. Verde Chiaro\n4. Celeste\n5. Rosso Chiaro\n6. Viola Chiaro\n7. Giallo Chiaro\n8. Bianco\n";
// Input per il colore del testo
cin >> t;
// Funzione colore testo
coloretesto(t);
// Svuotamento console
system("cls");
// Richiesta dell'input per il colore dello sfondo
cout << "Bella scelta! Invece di che colore vorresti lo sfondo?" << endl;
// Colori disponibili da scegliere per lo sfondo
cout << "1. Blu\n2. Verde\n3. Acqua\n4. Rosso\n5. Viola\n6. Giallo\n7. Bianco\n";
// Input per il colore dello sfondo
cin >> s;
// Funzione colore sfondo
// Svuotamento console
system("cls");
// Fine e richiesta di ricominciare da capo con ciclo while per evitare risposta sbagliata
while (risposta != "si" || risposta != "Si")
{
system("cls");
cout << "Tutto fatto! Vorresti scegliere altri colori? (Si/No)\n";
getline(cin, risposta);
if (risposta == "si" || risposta == "Si")
{
system("cls");
goto restart;
}
elseif (risposta == "no" || risposta == "No")
break;
}
// Pausa console
return 0;
}
Note the character literals rather than binary values.
Your switch (a > 0) is going to cause a different problem.
(a>0) is a boolean expression which will result in a 1 or 0. If the expression is true, you will take branch 1, but you will never get to branch 2.