C ++ fread () - C ++ standardna knjižnica

Funkcija fread () u C ++ čita određeni broj znakova iz zadanog ulaznog toka.

prototip fread ()

 size_t fread (void * međuspremnik, size_t size, size_t count, FILE * stream);

fread()Funkcija čita count broj predmeta, svaki veličine veličine bajtova iz danog ulaznim signalom. Slično je pozivanju veličine fgetc () za čitanje svakog objekta. Prema broju pročitanih znakova, povećava se pokazatelj položaja datoteke.

Rezultirajuća vrijednost pokazatelja položaja datoteke za tok je neodređena ako se tijekom čitanja datoteke dogodi bilo kakva pogreška.

Ako se objekti ne mogu trivijalno kopirati, ponašanje je nedefinirano.

Ako je veličina ili broj nula, poziv na freadvratit će nulu i neće se izvršiti nikakva druga radnja.

Definirano je u datoteci zaglavlja.

fread () Parametri

  • međuspremnik: pokazivač na blok memorije za spremanje objekata.
  • veličina: veličina svakog objekta u bajtovima.
  • count: Broj objekata za čitanje.
  • stream: tok datoteke iz kojeg se čitaju podaci.

fread () Povratna vrijednost

Na fread()funkcija vraća broj predmeta uspješno čitanje. Ako se dogodi pogreška ili stanje datoteke, povratna vrijednost može biti manja od broja.

Primjer 1: Kako funkcionira funkcija 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; )

Pretpostavimo da datoteka sadrži sljedeće podatke:

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

Kada pokrenete program, izlaz će biti:

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

Primjer 2: Kako funkcionira funkcija fread () kada je brojanje ili veličina nula

 #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; )

Kada pokrenete program, izlaz će biti:

 Kada je count = 0, povratna vrijednost = 0 Kada je veličina = 0, povratna vrijednost = 0

Zanimljivi članci...