The Best Geek Forum

Cambiare colore alle stringhe in output C++

Hai bisogno di aiuto per il tuo codice?? Posta qui il tuo problema! Degli utenti specializzati provvederanno subito ad assisterti!

Moderatore: Moderatore in prova

MasterProgrammer ha scritto:Ok, questo è strano, che errori ti dà?
Immagine
Virgula ha scritto:
MasterProgrammer ha scritto:Ok, questo è strano, che errori ti dà?
Immagine

Per il semplice motivo che sono nabbo xD

Ho messo FOR staccato è quindi ti dice che non è dichiarato e non può essere usato.

Questa la correzione definitiva:

Codice: Seleziona tutto

#include <iostream>
#include <windows.h>
using namespace std;

int main()
{
HANDLE hStdOut=GetStdHandle(STD_OUTPUT_HANDLE);
if(hStdOut==NULL)
{
cerr<<"Impossibile ottenere un handle alla console.";
return 1;
}
cout<<"Questo testo ha le impostazioni di default."<<endl;
cout<<"Anche questo, ma da qui in poi ";
SetConsoleTextAttribute(hStdOut,FOREGROUND_RED | FOREGROUND_BLUE | BACKGROUND_GREEN | BACKGROUND_INTENSITY );
cout<<" tutto viene scritto in viola su sfondo verde chiaro."<<endl;
SetConsoleTextAttribute(hStdOut,FOREGROUND_RED | FOREGROUND_BLUE | FOREGROUND_GREEN);
cout<<"Ora tutto e' normale."<<endl;
return 0;
}
Per il semplice motivo che sono nabbo xD

Ho messo FOR staccato è quindi ti dice che non è dichiarato e non può essere usato.
Si quell'errore poi l'avevo corretto io perchè me ne ero accorto che non poteva funzionare però se ne presenta un altro.Immagine
p.s io non uso cout<< endll ecc... per questo non sono molto pratico con questo tipo di digitura
Virgula ha scritto:
Per il semplice motivo che sono nabbo xD

Ho messo FOR staccato è quindi ti dice che non è dichiarato e non può essere usato.
Si quell'errore poi l'avevo corretto io perchè me ne ero accorto che non poteva funzionare però se ne presenta un altro.Immagine
p.s io non uso cout<< endll ecc... per questo non sono molto pratico con questo tipo di digitura
Non vedo iostream...

Puoi incollare qui TUTTO il codice che stai cercando di eseguire?

Puoi dirmi inoltre l'errore? Incolla qui la frase completa perpiacere.

Tutto eh, non lasciare niente.

Codice: Seleziona tutto

#include<iostream>
#include <windows.h>
using namespace std;

int main()
{
HANDLE hStdOut=GetStdHandle(STD_OUTPUT_HANDLE);
if(hStdOut==NULL)
{
cerr<<"Impossibile ottenere un handle alla console.";
return 1;
}
cout<<"Questo testo ha le impostazioni di default."<<endl;
cout<<"Anche questo, ma da qui in poi ";
SetConsoleTextAttribute(hStdOut,FOREGROUND_RED| FOREGROUND_BLUE|BACKGROUND_GREEN|BACKGROUND_INTENSITY );
cout<<" tutto viene scritto in viola su sfondo verde chiaro."<<endl;
SetConsoleTextAttribute(hStdOut,FOREGROUND_RED| FOREGROUND_BLUE |FOREGROUND_GREEN);
cout<<"Ora tutto e' normale."<<endl;
return 0;
system("pause");
}
risolti tutti gli errori solo che non si vede l'output cioè si apre e si chiude pur mettendo system("pause"); meglio printf ecc hihihih :D
Virgula ha scritto:
Virgula ha scritto:
Si quell'errore poi l'avevo corretto io perchè me ne ero accorto che non poteva funzionare però se ne presenta un altro.Immagine
p.s io non uso cout<< endll ecc... per questo non sono molto pratico con questo tipo di digitura
Non vedo iostream...

Puoi incollare qui TUTTO il codice che stai cercando di eseguire?

Puoi dirmi inoltre l'errore? Incolla qui la frase completa perpiacere.

Tutto eh, non lasciare niente.
eccolo qui iostream ci stava ho risolto l'errore a cerr ma mi da errore al secondo setconsoletextattribute ecc...

Codice: Seleziona tutto

#include<iostream>
#include <windows.h>
using namespace std;

int main()
{
HANDLE hStdOut=GetStdHandle(STD_OUTPUT_HANDLE);
if(hStdOut==NULL)
{
cerr<<"Impossibile ottenere un handle alla console.";
return 1;
}
cout<<"Questo testo ha le impostazioni di default."<<endl;
cout<<"Anche questo, ma da qui in poi ";
SetConsoleTextAttribute(hStdOut,FOREGROUND_RED| FOREGROUND_BLUE|BACKGROUND_GREEN|BACKGROUND_INTENSITY );
cout<<" tutto viene scritto in viola su sfondo verde chiaro."<<endl;
SetConsoleTextAttribute(hStdOut,FOREGROUND_RED| FOREGROUND_BLUE_|FOREGROUND_GREEN);
cout<<"Ora tutto e' normale."<<endl;
return 0;
}

Il codice che stai cercando di eseguire non è uguale a quello che ti ho dato io:

Il mio funzionante al 100% (provato più volte nella mia macchina) è questo:

Codice: Seleziona tutto

#include <iostream>
#include <windows.h>
using namespace std;

int main()
{
HANDLE hStdOut=GetStdHandle(STD_OUTPUT_HANDLE);
if(hStdOut==NULL)
{
cerr<<"Impossibile ottenere un handle alla console.";
return 1;
}
cout<<"Questo testo ha le impostazioni di default."<<endl;
cout<<"Anche questo, ma da qui in poi ";
SetConsoleTextAttribute(hStdOut,FOREGROUND_RED | FOREGROUND_BLUE | BACKGROUND_GREEN | BACKGROUND_INTENSITY );
cout<<" tutto viene scritto in viola su sfondo verde chiaro."<<endl;
SetConsoleTextAttribute(hStdOut,FOREGROUND_RED | FOREGROUND_BLUE | FOREGROUND_GREEN);
cout<<"Ora tutto e' normale."<<endl;
return 0;
}

Quello che hai messo te è invece questo:

Codice: Seleziona tutto

#include<iostream>
#include <windows.h>
using namespace std;

int main()
{
HANDLE hStdOut=GetStdHandle(STD_OUTPUT_HANDLE);
if(hStdOut==NULL)
{
cerr<<"Impossibile ottenere un handle alla console.";
return 1;
}
cout<<"Questo testo ha le impostazioni di default."<<endl;
cout<<"Anche questo, ma da qui in poi ";
SetConsoleTextAttribute(hStdOut,FOREGROUND_RED| FOREGROUND_BLUE|BACKGROUND_GREEN|BACKGROUND_INTENSITY );
cout<<" tutto viene scritto in viola su sfondo verde chiaro."<<endl;
SetConsoleTextAttribute(hStdOut,FOREGROUND_RED| FOREGROUND_BLUE_|FOREGROUND_GREEN);
cout<<"Ora tutto e' normale."<<endl;
return 0;
}


I setconsoletexattribute sono diversi come vedi.

Quindi danno errore.

Ripeto, dovresti eseguire questo codice:

Codice: Seleziona tutto

#include <iostream>
#include <windows.h>
using namespace std;

int main()
{
HANDLE hStdOut=GetStdHandle(STD_OUTPUT_HANDLE);
if(hStdOut==NULL)
{
cerr<<"Impossibile ottenere un handle alla console.";
return 1;
}
cout<<"Questo testo ha le impostazioni di default."<<endl;
cout<<"Anche questo, ma da qui in poi ";
SetConsoleTextAttribute(hStdOut,FOREGROUND_RED | FOREGROUND_BLUE | BACKGROUND_GREEN | BACKGROUND_INTENSITY );
cout<<" tutto viene scritto in viola su sfondo verde chiaro."<<endl;
SetConsoleTextAttribute(hStdOut,FOREGROUND_RED | FOREGROUND_BLUE | FOREGROUND_GREEN);
cout<<"Ora tutto e' normale."<<endl;
return 0;
}
Giuro che se copi e incolli ed esegui questo codice non ti dà errori nè warning nè nulla.

Giuro che se copi e incolli ed esegui questo codice non ti dà errori nè warning nè nulla.
sì sì grazie, non ci sono errori ho aggiornato il vecchio post sbagliavo io in una piccola cosa..... solo che l'output non si vede leggi mio post precedente.
Virgula ha scritto:

Giuro che se copi e incolli ed esegui questo codice non ti dà errori nè warning nè nulla.
sì sì grazie, non ci sono errori ho aggiornato il vecchio post sbagliavo io in una piccola cosa..... solo che l'output non si vede leggi mio post precedente.

Non capisco perchè non si veda.

Cosa ti dice il computer quando lo compili ed esegui? Qualche avviso? Errore del programma? Insomma dimmi tu.


Non capisco perchè non si veda.

Cosa ti dice il computer quando lo compili ed esegui? Qualche avviso? Errore del programma? Insomma dimmi tu.
nessun errore! ma può darsi sia dato dal fatto che il compilatore dev c++ convertito per il mac dia questi piccoli problemi. In ogni caso come ti diceva oggi pomeriggio, mi hai dato l'ispirazione, basta mescolare i colori per avere output diversi. Prova questo fatto ora da me.

Codice: Seleziona tutto

#include<iostream>
#include <windows.h>


 main()
{
printf("prova ");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_GREEN | FOREGROUND_BLUE); 
printf("\n prova 2");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_GREEN | FOREGROUND_RED); 
printf("\n prova3 \n");
system("pause");
}
Grazie dell'aiuto!
Virgula ha scritto:


Non capisco perchè non si veda.

Cosa ti dice il computer quando lo compili ed esegui? Qualche avviso? Errore del programma? Insomma dimmi tu.
nessun errore! ma può darsi sia dato dal fatto che il compilatore dev c++ convertito per il mac dia questi piccoli problemi. In ogni caso come ti diceva oggi pomeriggio, mi hai dato l'ispirazione, basta mescolare i colori per avere output diversi. Prova questo fatto ora da me.

Codice: Seleziona tutto

#include<iostream>
#include <windows.h>


 main()
{
printf("prova ");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_GREEN | FOREGROUND_BLUE); 
printf("\n prova 2");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_GREEN | FOREGROUND_RED); 
printf("\n prova3 \n");
system("pause");
}
Grazie dell'aiuto!

Anche il viola chiaro/rosa splendente su sfondo nero è bello dai :D

Codice: Seleziona tutto

#include<iostream>
#include <windows.h>


 main()
{
printf("\n prova1 \n");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_GREEN | FOREGROUND_BLUE); 
printf("\n prova2 \n");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_GREEN | FOREGROUND_RED); 
printf("\n prova3 \n");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_BLUE | FOREGROUND_RED); 
printf("\n prova4 \n");
}
Comunque figurati, son qui per aiutare, per qualsiasi problema son sempre qua! Ciao!