Mam taki problem, że kiedy wpisuję np: 2e to wysypuje się program , a gdy wpisze np 5e to wtedy normalnie dziala. Ogolnie to robię program ktory po wpisaniu numeru miesiąca wyświetla ile ten miesiąc ma dni. Największy problem jest z lutym, ponieważ w tej części trzeba jeszcze zapytać o rok i program po wpisaniu nieprawidlowej frazy( 2e ) nie wykonuje się do końca. A z tego co wiem program powinien automatycznie odciąć niepotrzebną literę na końcu. Dopiero zaczynam swoją przygodę z c++ , więc prosilbym o wyrozumialość.
Z góry dziękuję za pomoc.
#include <iostream>
#include <cstdlib>
using namespace std;
int nr_miesiaca,rok;
int main()
{
cout<<"Wpisz numer miesiac:";
if (!(cin>>nr_miesiaca))
{
cerr<<"To nie jest liczba!";
exit(0);
}
switch(nr_miesiaca)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
cout<<"ten miesiac ma 31 dni.";
break;
case 4:
case 6:
case 9:
case 11:
cout<<"Ten miesiac ma 30 dni.";
break;
case 2:
cout<<"Luty ma 28 dni lub 29 dni.Zaleznie od roku ;)"<<endl;
cout<<"Podaj obecny rok:";
cin>>rok;
if (((rok%4 == 0)&& (rok%100 != 0)) || (rok%400 == 0))
{
cout<<"W "<<rok<<" Luty ma 29 dni.";
}
else{
cout<<"W "<<rok<<" Luty ma 28 dni.";
}
break;
default: cout<<"Nieprawidlowy numer miesiaca";
break;
}
return 0;
}