infoarena

infoarena - concursuri, probleme, evaluator, articole => Probleme externe => Subiect creat de: Mihailescu Andrei din Noiembrie 09, 2012, 23:18:55



Titlul: Culaore text
Scris de: Mihailescu Andrei din Noiembrie 09, 2012, 23:18:55
Stiu ca nu este chiar cel mai eficient algoritm si ar putea fi facut mult mai usor.
doresc ca textul de dupa "text aparat" sa fie alta culoare dar nu si textul de dupa cum ar fi "introduceti sirul".
(http://img211.imageshack.us/img211/5662/imaginez.png) (http://imageshack.us/photo/my-images/211/imaginez.png/)



Cod:
#include <iostream.h>
#ifdef WIN32
#include <windows.h>
#endif
#include <string.h>
using namespace  std;

char schimbare(char r[100])
{
int i=0,j;

j=strlen(r);
while (i<j)
{
if (r[i]=='a')
{
           #ifdef WIN32
   HANDLE hstdo;
   hstdo = GetStdHandle(STD_OUTPUT_HANDLE);
   SetConsoleTextAttribute(hstdo, FOREGROUND_GREEN|FOREGROUND_INTENSITY);
           #endif
   cout<<'T';
}
if (r[i]=='b')
cout<<'U';
if (r[i]=='c')
cout<<'V';
if (r[i]=='d')
cout<<'W';
if (r[i]=='e')
cout<<'X';
if (r[i]=='f')
cout<<'Y';
if (r[i]=='g')
cout<<'Z';
if (r[i]=='h')
cout<<'1';
if (r[i]=='i')
cout<<'2';
if (r[i]=='j')
cout<<'3';
if (r[i]=='k')
cout<<'4';
if (r[i]=='l')
cout<<'5';
if (r[i]=='m')
cout<<'6';
if (r[i]=='n')
cout<<'7';
if (r[i]=='o')
cout<<'8';
if (r[i]=='p')
cout<<'9';
if (r[i]=='q')
cout<<'0';
if (r[i]=='r')
cout<<'.';
if (r[i]=='s')
cout<<'-';
if (r[i]=='t')
cout<<'A';
if (r[i]=='u')
cout<<'B';
if (r[i]=='v')
cout<<'C';
if (r[i]=='w')
cout<<'D';
if (r[i]=='x')
cout<<'E';
if (r[i]=='y')
cout<<'F';
if (r[i]=='z')
cout<<'G';
if (r[i]=='1')
cout<<'H';
if (r[i]=='2')
cout<<'I';
if (r[i]=='3')
cout<<'J';
if (r[i]=='4')
cout<<'K';
if (r[i]=='5')
cout<<'L';
if (r[i]=='6')
cout<<'M';
if (r[i]=='7')
cout<<'N';
if (r[i]=='8')
cout<<'O';
if (r[i]=='9')
cout<<'P';
if (r[i]=='0')
cout<<'Q';
if (r[i]=='.')
cout<<'R';
if (r[i]=='-')
cout<<'S';
if (r[i]==' ')
cout<<'_';
i++;
}
}

int main()
{
int i=0;
char r[100];
cout<<"Introduceti sirul: ";
    cin.get(r,100);
do
{
    if (strlen(r)>=11)
{
cout<<"Sirul este prea lung!"<<endl<<"Reintroduceti sirul: ";
cin.get();
cin.get(r,100);
}
else
{
    cout<<"Text aparat("<<(strlen(r))<<" caractere): ";
schimbare(r);
cout<<endl;
cout<<"Introduceti sirul: ";
cin.get();
    cin.get(r,100);
}
}
while(r[0]!='*');
}

Multumesc anticipat!


Titlul: Răspuns: Culaore text
Scris de: George Marcus din Noiembrie 10, 2012, 11:09:11
La sfarsitul functiei schimbare() schimbi la loc culoarea in cea default.


Titlul: Răspuns: Culaore text
Scris de: Mihailescu Andrei din Noiembrie 10, 2012, 12:59:09
Ok mersi dar cum resetez la culoare defeault faza de schimbare de culoare am gasit-o pe net!


Titlul: Răspuns: Culaore text
Scris de: George Marcus din Noiembrie 10, 2012, 13:38:09
Faci aceeasi chestie ca si cand transformi in verde, doar ca apelezi cu FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE | FOREGROUND_INTENSITY


Titlul: Răspuns: Culaore text
Scris de: Mihailescu Andrei din Noiembrie 10, 2012, 16:47:48
mersi mult a mers