Ciao a tutti/e,
sto scrivendo un programmino che legge una data da tastiera e restituisce la data del giorno successivo.
Questo è il codice "incriminato":
//definizione della struttura data
struct data{
int giorno;
int mese;
int anno;
};
//prototipi delle funzioni
void inserimentoData(struct data* k);
bool controllaData(struct data d);
bool bisestile(int anno);
void domani(struct data* d);
void stampaData(struct data f);
/*---------------------------------------------------------------
MAIN
---------------------------------------------------------------*/
main(){
struct data g;
cout << "INPUT" << endl << "-----";
inserimentoData(&g);
domani(&g);
cout << endl <<"OUTPUT" << endl << "------" << endl;
stampaData(g);
system("pause");
}
/*---------------------------------------------------------------
FUNZIONI
---------------------------------------------------------------*/
//funzione inserimentoData
void inserimentoData(struct data* k){
do{
cout << endl;
cout << "Inserisci giorno: ";
cin >> k->giorno;
cout << "Inserisci mese: ";
cin >> k->mese;
cout << "Inserisci anno: ";
cin >> k->anno;
}
while (controllaData(k) == false);
}
/*---------------------------------------------------------------*/
//funzione controllaData
bool controllaData(struct data j){
if(j.giorno<0 || j.giorno >31 ||
((j.mese==4 || j.mese==6 || j.mese==9 || j.mese==11) && j.giorno ==31) ||
(j.mese==2 && bisestile(j.anno)==true && j.giorno==30) ||
(j.mese==2 && bisestile(j.anno)==false && j.giorno==29)){
cout << "DATA SBAGLIATA!!" << endl;
return false;
}
else
return true;
}
):
alla riga relativa all'istruzione (nella funzione inserimentoData()):
while (controllaData(k) == false);
il compilatore mi da il seguente errore:
in function 'void inserimentoData(data*)':
conversion from 'data*' to non-scalar type ' data' requested
qualcuno mi può spiegare il perché?
Cmq ho risolto il problema modificando la funzione inserimentoData() in questo modo:
//funzione inserimentoData
void inserimentoData(struct data* f){
struct data k;
do{
cout << endl;
cout << "Inserisci giorno: ";
cin >> k.giorno;
cout << "Inserisci mese: ";
cin >> k.mese;
cout << "Inserisci anno: ";
cin >> k.anno;
}
while (controllaData(k) == false);
*f=k;
}