The C. przerażający() to standardowa funkcja biblioteczna służąca do odczytania zadanej ilości danych ze strumienia pliku. Zdefiniowana wewnątrz funkcja fread() odczytuje ze strumienia pliku zadaną liczbę elementów o określonym rozmiarze i zapisuje je w pamięci buforowej. Całkowita liczba bajtów odczytanych przez funkcję fread() to liczba odczytanych elementów pomnożona przez rozmiar każdego elementu w bajtach.
Składnia C fread()
size_t fread (void * buffer , size_t size , size_t count , FILE * stream );>
Wskaźnik pozycji pliku jest automatycznie przesuwany do przodu o liczbę odczytanych bajtów. Jeśli odczytywanych obiektów nie można w prosty sposób skopiować, na przykład struktur lub złożonych typów danych, wówczas nie zachowują się one prawidłowo.
Parametry
- bufor: Odnosi się do wskaźnika do bloku pamięci bufora, w którym będą przechowywane odczytane dane. size: odnosi się do rozmiaru każdego elementu w bajtach. count: Odnosi się do liczby elementów do odczytania. strumień: Odnosi się do wskaźnika do strumienia pliku.
Wartość zwracana
- Funkcja zwraca liczbę elementów, które pomyślnie zostały odczytane z pliku.
- Jeśli zwrócona wartość jest mniejsza niż liczba, oznacza to, że wystąpił błąd lub plik osiągnął koniec.
- Jeśli wartość size lub count wynosi zero, fread() zwraca zero i nie wykonuje żadnej innej akcji.
Notatka: Funkcja fread() sama w sobie nie umożliwia rozróżnienia pomiędzy końcem pliku a błędem. Do określenia, który wystąpił, można użyć funkcji feof i ferror.
Przykłady C fread()
Przykład 1
Poniższe programy ilustrują funkcję fread().
C
// C program to illustrate fread() function> #include> int> main()> {> >// File pointer> >FILE>* filePointer;> >// Buffer to store the read data> >char> buffer[100];> >// 'g4g.txt' file is opened in read mode> >filePointer =>fopen>(>'g4g.txt'>,>'r'>);> > >// Data is read from the file into the buffer> >// sizeof(buffer) specifies the size of each element to> >// be read 1 is the number of elements to read> >// filePointer is the file to read from> >while> (!>feof>(filePointer)) {> >fread>(buffer,>sizeof>(buffer), 1, filePointer);> >// Print the read data> >printf>(>'%s'>, buffer);> >}> >fclose>(filePointer);> >return> 0;> }> |
>
>
Załóżmy, że plik g4g.txt zawiera następujące dane:
Geeks : DS-ALgo Gfg : DP Contribute : writearticle>
Następnie po uruchomieniu programu wyjście będzie
edukacja Marka Zuckerberga
Geeks : DS-ALgo Gfg : DP Contribute : writearticle>
Przykład 2
Ten program w języku C demonstruje użycie funkcji fread(), gdy rozmiar lub liczba plików jest równa 0.
C
// C program to illustrate fread() function> // when size of the file or the value of count is equal to 0> #include> int> main()> {> >// File pointer> >FILE>* filePointer;> >// Buffer to store the read data> >char> buffer[100];> >// 'g4g.txt' file is opened in read mode> >filePointer =>fopen>(>'g4g.txt'>,>'r'>);> >// Case when count is equal to 0> >printf>(>'count = 0, return value = %zu
'>,> >fread>(buffer,>sizeof>(buffer), 0, filePointer));> >// Case when size is equal to 0> >printf>(>'size = 0, return value = %zu
'>,> >fread>(buffer, 0, 1, filePointer));> >return> 0;> }> |
>
>Wyjście
count = 0, return value = 0 size = 0, return value = 0>
C++
// C++ program to illustrate the vector container> #include> #include> using> namespace> std;> int> main()> {> >// 1d vector with initialization list> >vector<>int>>v1 = { 1, 2, 3, 4, 5 };> >// 2d vector with size and element value initialization> >vectorint>> v2(3, wektor |
>
>Wyjście
typy sieci
v1: 1 2 3 4 5 6 v2: 1 2 3 4 6 v2:- 5 5 5 5 5 5 5 5 5>