[C] Prendere in input una stringa di due o più parole
Salve, in un programmino che sto facendo ad un certo punto chiedo all'input l'inserimento di una stringa e due interi, ovvero:
Se ad esempio voglio inserire da tastiera un nome tipo Antonio Mario Rossi, quando inserisco "Antonio Mario" alla domanda del nome, mi chiede direttamente l'età e assegna il valore "Mario" al campo cognome della struttura lista. Sapete dirmi perchè ciò avviene e come risolvere il problema?
PS: Nella struttura lista il campo nome è un array di 20 caratteri.
printf("Nome: ");
scanf("%s", &lista.nome);
printf("Cognome: ");
scanf("%s", &lista.cognome);
do {
printf("Eta': ");
scanf("%d", &lista.eta);
} while (lista.eta<=0);
Se ad esempio voglio inserire da tastiera un nome tipo Antonio Mario Rossi, quando inserisco "Antonio Mario" alla domanda del nome, mi chiede direttamente l'età e assegna il valore "Mario" al campo cognome della struttura lista. Sapete dirmi perchè ciò avviene e come risolvere il problema?
PS: Nella struttura lista il campo nome è un array di 20 caratteri.
Risposte
scrivi
al posto di
ignore_line(stdin);
al posto di
fflush(stdin);
Ha funzionato, grazie.