Chciałbym zrobić taki programik, który podaje liczbę dni danego miesiąca, ale podczas wpisywania numeru danego miesiąca chciałbym zamiast cin'a użyć getch'a. W przypadku lutego program pyta się o rok i na jego podstawie ustala czy jest on przestępny czy nie. Lecz jest pewien problem. Funkcja getch podaje rok od razu po wpisaniu pierwszej liczby roku. Np. kiedy chcę wpisać,że jest rok 2018 to getch wypisuje czy rok jest przestępny od razu po wpisaniu liczby 2. Czy istnieje możliwość zatrzymania getch'a do momentu wpisania 4 znaków? Załączam kod źródłowy.
#include <iostream>
#include <conio.h>
#include <cstdlib>
#include <windows.h>
using namespace std;
int numer_miesiaca,rok,i;
int main()
{
cout<<"Aby opuscic program wcisnij klawisz <0>"<<endl;
Sleep(1000);
system("cls");
cout<<"Program rozpocznie sie za...";
Sleep(1500);
for(int i=5; i>=1;i--)
{
system("cls");
cout<<i;
Sleep(400);
}
system("cls");
for(;;)
{
system("cls");
cout<<"Wpisz numer miesiaca"<<endl;
numer_miesiaca=getch();
switch(numer_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<<"Podaj rok"<<endl;
rok=getch();
if((rok%4==0)&&(rok%100!=0)||(rok%400==0))
cout<<"Ten miesiac ma 29 dni";
else cout
<<"Ten miesiac ma 28 dni";
Sleep(2000);
break;
case '0':
exit(0);
break;
}
}
return 0;
}