Acquisire stringa con fgets

di il
2 risposte

Acquisire stringa con fgets

Salve ragazzi ho un problema nell'acquisizione di una stringa tramite fgets questo è la parte di codice "incriminata"

char nome[20],cognome[20];
int i=0;
/*non sono sicuro se serva pulire le due stringhe prima di usarle/*
while(i<20){
nome[i]='\0';
cognome[i]='\0';

i++;
}

printf("inserisci il nome");
fgets(nome,sizeof(nome),stdin);
printf("inserisci il cognome");
fgets(cognome,sizeof(cognome),stdin);

l'output è il seguente:

inserisci il nome
inserisci il cognome
/*il cursore adesso mi permette di dare input*/
in sostanza non si ferma ad aspettare l'inserimento dell'input alla prima fgets...
vi ringrazio!

2 Risposte

  • Re: Acquisire stringa con fgets

    Ci sono delle scanf nel tuo programma prima della prima fgets?
  • Re: Acquisire stringa con fgets

    Dato che stdout é di defaul bufferizzato, a video verrà stampato il dato solo al momento che il buffer siriempirà.
    Hai due soluzioni, la prima disabiliti il buffer sullo stdout, la seconda invece é quella di mettere un fflush(stdout) dopo ogni printf, in modo da esseri sicuri che venga vuotato il buffer a video.
Devi accedere o registrarti per scrivere nel forum
2 risposte