JA stvarno ne razumem tvoj kod... Učitavaš dan, mesec i godinu a onda radiš nešto sa long datum, koju puniš gde?
Ako želiš da korisnik unese odvojeno dan mesec i godinu, a ne da rastavljaš char* koji korisnik unese, onda možeš ovako:
Code:
#include <stdio.h>
int ucitaj() {
int dan,mesec,godina;
printf( "Upisi datum u obliku DD MM YYYY: \n");
scanf("%i %i %i",&dan, &mesec, &godina);
if( !( (dan>0) && (dan<=31) ) ) return 1;
else {
if( (mesec%2==1) && (dan==31) ) return 1;
if ( ( (mesec==2) && (dan>29) ) || ( ! (godina%4==0) && (mesec==2) && (dan==29) ) ) return 1;
}
if( !( (mesec>0) && (mesec<=12) ) ) return 1;
// trebalo bi da je sve OK
printf("Datum: %i %i %i\n",godina, mesec, dan);
return 0;
}
int main() {
if(ucitaj() == 1) printf("Doslo je do greske");
return 0;
}
PS - valjda nisi baš toliko lenj da ti bude teško da ovo prepišeš u C++ ;).
http://sr.libreoffice.org — slobodan kancelarijski paket, obrada teksta, tablice,
prezentacije, legalno bez troškova licenciranja