Hejka. Chciałabym się Was zapytać, co jest zrobione nie tak w kodzie, że wpisując pesel do konsoli, który powinien mieć 11 znaków, wyświetla komunikat "Błąd" i dodatkowo program wraca do początku z błędem "Niepoprawna plec!". A jeśli wpiszę długość peselu różną od 11 to wyskakuje komunikat "Błędu" i wraca do początku do "switcha" poprawnie.
Funkcja błędu:
void push_front()
{
string imie, nazwisko, plec;
int dzien, miesiac, rok_urodzenia;
long pesel;
cout << "WSTAWIANIE DANYCH NA POCZATEK LISTY" << endl;
cout << "Podaj plec(Kobieta/Mezczyzna): ";
cin >> plec;
if(plec!="Kobieta" && plec!="Mezczyzna")
{
printf("Niepoprawna plec!");
Sleep(3000);
return;
}
cout << "Podaj imie: ";
cin >> imie;
cout << "Podaj nazwisko: ";
cin >> nazwisko;
cout << "Podaj dzien urodzenia: ";
cin >> dzien;
if(dzien>31 || dzien<1)
{
printf("Nieprawidlowy dzien! Sprobuj od nowa.");
Sleep(3000);
return;
}
cout << "Podaj miesiac urodzenia: ";
cin >> miesiac;
if(miesiac>12 || miesiac<1)
{
printf("Nieprawidlowy miesiac! Sprobuj ponownie.");
Sleep(3000);
return;
}
cout << "Podaj rok urodzenia: ";
cin >> rok_urodzenia;
if(rok_urodzenia>2019 || rok_urodzenia<1900)
{
printf("Nieprawidlowy rok! Sprobuj wypelnic dane jeszcze raz.");
Sleep(3000);
return;
}
std::string pesel_length_as_text = std::to_string (pesel);
int pesel_length = pesel_length_as_text.length();
cout << "Podaj swoj PESEL(powinien miec 11 cyfr): ";
cin >> pesel;
if(pesel_length != 11)
{
std::cout<<"Blad!";
Sleep(3000);
return;
}
else {
std::cout<<"11";
lista_systemu.push_front(plec[10]);
lista_systemu.push_front(imie[30]);
lista_systemu.push_front(nazwisko[30]);
lista_systemu.push_front(dzien);
lista_systemu.push_front(miesiac);
lista_systemu.push_front(rok_urodzenia);
lista_systemu.push_front(pesel);
}
}