[C] Prendere in input una stringa di due o più parole

smartmouse
Salve, in un programmino che sto facendo ad un certo punto chiedo all'input l'inserimento di una stringa e due interi, ovvero:

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
apatriarca
scrivi
ignore_line(stdin);

al posto di
fflush(stdin);

smartmouse
Ha funzionato, grazie.

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.