PDA

Visualizza la versione completa : [C]Scanf e spazi


Doomw
06-05-2010, 19:59
Salve,

come posso fare per far riconoscere gli spazi come caratteri alla scanf?

Ho provato a cercare in giro, ma tutti i consigli del tipo

scanf("%[^\n]",buffer);

oppure prova con la funzione fgets() ecc, non mi hanno risolto il problema.

Grazie.

oregon
06-05-2010, 20:01
Il problema lo risolvi con la fgets.

Doomw
06-05-2010, 20:02
ma non mi funziona.

faccio cosi'.

char buffer[20];

fgets(buffer, 20, stdin);

e non succede niente.

oregon
06-05-2010, 20:03
Cosa dovrebbe succedere?

Attende i dati che devi scrivere da tastiera ... no?

Doomw
06-05-2010, 20:06
Ho provato a fare un programma solo con la fgets e funziona, ma all'interno del programma in cui mi serve no.

Ora vedo di risolvere.

oregon
06-05-2010, 20:07
Originariamente inviato da Doomw
Ho provato a fare un programma solo con la fgets e funziona, ma all'interno del programma in cui mi serve no.

Ora vedo di risolvere.

:bh:

Doomw
06-05-2010, 20:11
char sendbuf6[85]="To: ";
char destinatario[80];
printf("Inserisci il nome del destinatario\n");
fgets(destinatario, 80, stdin);
strncat(sendbuf6, destinatario, sizeof(sendbuf6)-strlen(sendbuf6));
sendbuf6[sizeof(sendbuf6)-1]=0;

printf("%s", sendbuf6);

questo e' il codice.

Praticamente mi stampa:

To:
e poi continua con il resto del programma, mi salta proprio l'inserimento.

oregon
06-05-2010, 20:13
Il problema nel codice precedente ... se ci sono delle scanf allora devi pulire il buffer prima della fgets.

Ci sono innumerevoli discussioni sull'argomento.

Doomw
06-05-2010, 20:17
Esatto, risolto grazie mille

Loading