C ++ fread () - Libreria standard C ++

La funzione fread () in C ++ legge un numero specificato di caratteri dal flusso di input specificato.

prototipo fread ()

 size_t fread (void * buffer, size_t size, size_t count, FILE * stream);

La fread()funzione legge il numero di conteggio di oggetti, ciascuno di dimensione dimensione byte dal flusso di input specificato. È simile a chiamare fgetc () size times per leggere ogni oggetto. In base al numero di caratteri letti, l'indicatore di posizione del file viene incrementato.

Il valore risultante dell'indicatore di posizione del file per il flusso è indeterminato se si verifica un errore durante la lettura del file.

Se gli oggetti non sono banalmente copiabili, il comportamento è indefinito.

Se la dimensione o il conteggio è zero, una chiamata a freadrestituirà zero e non viene eseguita nessun'altra azione.

È definito nel file di intestazione.

Parametri fread ()

  • buffer: puntatore al blocco di memoria per memorizzare gli oggetti.
  • size: dimensione di ogni oggetto in byte.
  • count: il numero di oggetti da leggere.
  • stream: il flusso di file da cui leggere i dati.

fread () Restituisce il valore

La fread()funzione restituisce il numero di oggetti letti con successo. Se si verifica un errore o una condizione di fine file, il valore restituito potrebbe essere inferiore a count.

Esempio 1: come funziona la funzione fread ()

 #include #include using namespace std; int main() ( FILE *fp; char buffer(100); fp = fopen("data.txt","rb"); while(!feof(fp)) ( fread(buffer,sizeof(buffer),1,fp); cout << buffer; ) return 0; )

Supponiamo che il file contenga i seguenti dati:

 Dennis Ritchie: C Bjarne Stroustrup: C ++ Guido van Rossum: Python James Gosling: Java

Quando esegui il programma, l'output sarà:

 Dennis Ritchie: C Bjarne Stroustrup: C ++ Guido van Rossum: Python James Gosling: Java

Esempio 2: come funziona la funzione fread () quando count o size è zero

 #include #include using namespace std; int main() ( FILE *fp; char buffer(100); int retVal; fp = fopen("data.txt","rb"); /* when count is zero */ retVal = fread(buffer,sizeof(buffer),0,fp); cout << "When count = 0, return value = " << retVal << endl; /* when size is zero */ retVal = fread(buffer,0,1,fp); cout << "When size = 0, return value = " << retVal << endl; return 0; )

Quando esegui il programma, l'output sarà:

 Quando count = 0, restituisce valore = 0 Quando size = 0, restituisce valore = 0

Articoli interessanti...