C ++ fread () - standardní knihovna C ++

Funkce fread () v C ++ čte zadaný počet znaků z daného vstupního proudu.

fread () prototyp

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

fread()Funkce čte počítat počet objektů, každý o velikosti velikost bajtů z daného vstupního proudu. Je to podobné, jako když voláte časy velikosti fgetc () pro čtení každého objektu. Podle počtu přečtených znaků se indikátor polohy souboru zvýší.

Výsledná hodnota indikátoru polohy souboru pro stream je neurčitá, pokud během čtení souboru dojde k nějaké chybě.

Pokud objekty nelze triviálně kopírovat, chování není definováno.

Pokud je velikost nebo počet nula, volání freadfunkce vrátí nulu a neprovede se žádná další akce.

Je definován v hlavičkovém souboru.

parametry fread ()

  • buffer: Ukazatel na blok paměti pro uložení objektů.
  • size: Velikost každého objektu v bajtech.
  • count: Počet objektů ke čtení.
  • stream: Datový proud souboru, ze kterého se mají číst data.

fread () Návratová hodnota

Tyto fread()funkce vrátí počet objektů úspěšně přečten. Pokud dojde k chybě nebo podmínce konce souboru, návratová hodnota může být menší než počet.

Příklad 1: Jak funguje funkce 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; )

Předpokládejme, že soubor obsahuje následující data:

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

Když spustíte program, výstup bude:

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

Příklad 2: Jak funguje funkce fread (), když je počet nebo velikost nulová

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

Když spustíte program, výstup bude:

 Když count = 0, návratová hodnota = 0 Když size = 0, návratová hodnota = 0

Zajímavé články...