C ++ fread () - Biblioteca standard C ++

Funcția fread () din C ++ citește un număr specificat de caractere din fluxul de intrare dat.

fread () prototip

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

fread()Funcția citește numărul de numărul de obiecte, fiecare dimensiune dimensiunea octeți din fluxul de intrare dat. Este similar cu apelarea dimensiunii fgetc () ori pentru a citi fiecare obiect. În funcție de numărul de caractere citite, indicatorul poziției fișierului este incrementat.

Valoarea rezultată a indicatorului de poziție a fișierului pentru flux este nedeterminată dacă apare o eroare la citirea fișierului.

Dacă obiectele nu pot fi copiate în mod banal, comportamentul este nedefinit.

Dacă dimensiunea sau numărul este zero, un apel către freadva reveni la zero și nu se efectuează nicio altă acțiune.

Este definit în fișierul antet.

fread () Parametri

  • buffer: Pointer către blocul de memorie pentru a stoca obiectele.
  • size: Dimensiunea fiecărui obiect în octeți.
  • count: Numărul de obiecte de citit.
  • stream: fluxul de fișiere din care se citesc datele.

fread () Valoare returnată

În fread()Funcția returnează numărul de obiecte citite cu succes. Dacă apare o eroare sau starea de sfârșit a fișierului, valoarea de returnare poate fi mai mică decât numărul.

Exemplul 1: Cum funcționează funcția 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; )

Să presupunem că fișierul conține următoarele date:

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

Când rulați programul, ieșirea va fi:

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

Exemplul 2: Cum funcționează funcția fread () atunci când numărul sau dimensiunea este 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; )

Când rulați programul, ieșirea va fi:

 Când numărul = 0, returnează valoarea = 0 Când dimensiunea = 0, returnează valoarea = 0

Articole interesante...