Cosa fa fflush nella programmazione C

Cosa fa fflush nella programmazione C
Nella programmazione C, il fflush (stdin) La funzione viene utilizzata per cancellare la memoria del buffer di input di tutti i dati che possono ancora essere archiviati. Lo fa liberando qualsiasi memoria associata al flusso di input standard, noto come stdin, che è l'input predefinito utilizzato per leggere qualsiasi dati dagli argomenti della riga di comando o una tastiera. Ciò significa che tutti i dati rimanenti che non sono stati elaborati vengono scartati e possono essere utilizzati tutti i dati dell'ultima operazione di input riuscita.

Secondo lo standard C, usando fflush (stdin) è un modello di comportamento poco chiaro. Alcuni compilatori, come Microsoft Visual Studio, lo consentono, tuttavia. Anche quando si accetta un numero intero con spazi e si discute dell'ingresso precedente per lo stesso, un buffer non viene pulito nel prossimo input. Questo problema viene risolto lavando lo stesso flusso e tampone con fflush (stdin).

Diamo un'occhiata a un esempio:

#includere
#includere
int main ()

Char S [20];
int i;
per (i = 0; i<3; i++)

printf ("immettere una stringa \ n");
scanf ("%[^\ n] s", s);
printf ("%s \ n", s);
fflush (stdin);

restituzione 0;

Il codice sopra prende un singolo input e dà lo stesso risultato. Il buffer viene quindi pulito usando il fflush (stdin) funzione, quindi l'input successivo viene inserito e stampato e così via.

Produzione

Cosa fa fflush (stdin) nella programmazione C?

IL fflush (stdin) La funzione viene utilizzata con le operazioni di input per garantire che i dati siano elaborati correttamente e che nulla sia lasciato indietro nel buffer di input. Nella programmazione C, ogni operazione di input lascerà indietro alcuni dati nel buffer di input. Questi dati vengono lasciati lì fino a quando il programma non sceglie di elaborarli, ma questo può causare problemi inaspettati. Ad esempio, se un programma si aspetta un numero come input ma l'utente digita accidentalmente in una lettera, i dati lasciati nel buffer verranno comunque elaborati come input successivo. Ciò potrebbe causare l'analisi del programma o i dati.

Usando il fflush (stdin) La funzione può aiutare a impedire che ciò accada. La funzione cancella manualmente il buffer e quindi tutti i dati rimanenti vengono rimossi da esso. Senza questa funzione, il computer elaborebbe comunque i dati rimanenti come input successivo, ma ora qualsiasi errore può essere catturato e il programma può essere fatto per riprogrammare l'utente per l'ingresso corretto.

Oltre a usarlo per cancellare i buffer di input, il fflush (stdin) La funzione può anche essere utilizzata per scaricare i flussi di uscita. Ciò è utile per i programmi che richiedono un output in tempo reale o visualizzano l'avanzamento di un programma. Svuotando il flusso di output, l'uscita più recente può essere visualizzata immediatamente. Altrimenti, il programma dovrebbe attendere fino a quando l'intero flusso è pieno prima che possa essere visualizzato.

Conclusione

IL fflush (stdin) La funzione è una parte essenziale della programmazione C. Svuotando i restanti dati dai buffer di input, aiuta a impedire agli input imprevisti di eliminare il programma e causare errori. Inoltre, può essere utilizzato per scaricare i flussi di output che possono essere utili per visualizzare informazioni in tempo reale. Sebbene non sia usato frequentemente, il fflush (stdin) La funzione è una parte importante del toolkit di qualsiasi programmatore.