C ++ fread () - štandardná knižnica C ++

Funkcia fread () v C ++ načíta zadaný počet znakov z daného vstupného toku.

prototyp fread ()

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

fread()Funkcia číta počítať počet objektov, každý o veľkosti veľkosť bajtov z daného vstupného prúdu. Je to podobné ako volanie časov veľkosti fgetc () na prečítanie každého objektu. Podľa počtu prečítaných znakov sa indikátor polohy súboru zvýši.

Výsledná hodnota indikátora polohy súboru pre prúd je neurčitá, ak sa pri načítaní súboru vyskytne chyba.

Ak objekty nie sú triviálne kopírovateľné, správanie nie je definované.

Ak je veľkosť alebo počet nula, volanie funkcie freadvráti nulu a nevykoná sa žiadna ďalšia akcia.

Je definované v hlavičkovom súbore.

parametre fread ()

  • buffer: Ukazovateľ na blok pamäte na uloženie objektov.
  • size: Veľkosť každého objektu v bajtoch.
  • count: Počet objektov na čítanie.
  • stream: Stream súborov, z ktorého sa majú načítať údaje.

fread () Vrátiť hodnotu

Tieto fread()funkcie vráti počet objektov úspešne prečítaný. Ak sa vyskytne chyba alebo stav na konci súboru, návratová hodnota môže byť menšia ako počet.

Príklad 1: Ako funguje funkcia 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; )

Predpokladajme, že súbor obsahuje nasledujúce údaje:

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

Po spustení programu bude výstup:

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

Príklad 2: Ako funguje funkcia fread (), keď je počet alebo veľkosť 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; )

Po spustení programu bude výstup:

 Keď počet = 0, návratová hodnota = 0 Keď veľkosť = 0, návratná hodnota = 0

Zaujímavé články...