Witam! Na sam początek wkleję kodzik:
void wprowadz()
{
int dlugosc;
string wyraz;
cout<<"Podaj wyraz: ";
cin>>wyraz;
getchar();
dlugosc=wyraz.length();
sprawdz(wyraz,dlugosc);
};
void sprawdz(string wyraz, int dlugosc)
{
bool blad = 0;
for(int i = 0; i<dlugosc; i++)
if (!((wyraz[i]>=48 && wyraz[i]<=57) || (wyraz[i]>=65 && wyraz[i]<=90) || wyraz[i]>=97 && wyraz[i]<=122))
{
cout<<"UWAGA: Niedozwolony znak o indeksie: "<<i+1<<" - popraw\n";
blad = 1;
}
if (blad==1) wprowadz();
cout<<"SPRAWDZ";
};
Jest on niepełny ale myślę, że powinno wystarczyć. Otóż gdy za pierwszym razem wpisze poprawnie dane (tz. z przedziału od 0-9, a-z, A-Z) to wszystko działa dobrze tekst SPRAWDZ wyświetla się tylko raz. Jednak jeśli wpisze jakąś liczbę z poza przedziału tekst się powtarza tz. jeżeli najpierw zrobię błąd, a później wpisze prawidłowe dane tekst SPRAWDZ wyświetla się dwa razy i tak to wygląda:
SPRAWDZSPRAWDZ
Jeżeli zrobię najpierw dwa błędy, a później poprawnie to tekst SPRAWDZ powtarza się 3 razy itd.
No i tu jest moje pytanie co powoduje ten błąd?
Z góry dzięki za odpowiedz.