C ++ fread () - biblioteka standardowa C ++

Funkcja fread () w C ++ odczytuje określoną liczbę znaków z podanego strumienia wejściowego.

prototyp fread ()

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

fread()Funkcja czyta liczbę count obiektów, każdy o rozmiarze size bajtów z danym strumieniu wejściowym. Jest to podobne do wywołania funkcji fgetc () size times w celu odczytania każdego obiektu. W zależności od liczby odczytanych znaków, wskaźnik pozycji pliku jest zwiększany.

Wynikowa wartość wskaźnika pozycji pliku dla strumienia jest nieokreślona, ​​jeśli podczas odczytu pliku wystąpi błąd.

Jeśli obiekty nie są w prosty sposób kopiowalne, zachowanie jest niezdefiniowane.

Jeśli rozmiar lub liczba wynosi zero, wywołanie freadzwróci zero i nie zostanie wykonana żadna inna akcja.

Jest zdefiniowany w pliku nagłówkowym.

fread () Parametry

  • bufor: wskaźnik do bloku pamięci do przechowywania obiektów.
  • size: rozmiar każdego obiektu w bajtach.
  • count: liczba obiektów do odczytania.
  • stream: strumień pliku, z którego mają być odczytywane dane.

fread () Zwracana wartość

Że fread()funkcja zwraca liczbę obiektów czytać pomyślnie. Jeśli wystąpi błąd lub warunek końca pliku, zwracana wartość może być mniejsza niż liczba.

Przykład 1: Jak działa funkcja 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; )

Załóżmy, że plik zawiera następujące dane:

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

Po uruchomieniu programu wynik będzie następujący:

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

Przykład 2: Jak działa funkcja fread (), gdy liczba lub rozmiar wynosi 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; )

Po uruchomieniu programu wynik będzie następujący:

 Gdy count = 0, zwracana wartość = 0 Gdy size = 0, zwracana wartość = 0

Interesujące artykuły...