Non potevi chiedere semplicemente di ottenere la data odierna separata in giorno, mese, anno senza giri di parole ...? Il codice che hai mostrato (input da tastiera) era fuorviante e non faceva comprendere il (semplice) problema ...

Qualcosa del genere, dovrebbe andare ...

codice:
time_t lt;
time(&lt);
struct tm *oggi = localtime(&lt);

int giorno = oggi->tm_mday;
int mese = oggi->tm_mon+1;
int anno = oggi->tm_year+1900;