Składnia
#include <cstdio>
size_t fread( void * buffer, size_t size, size_t count, FILE * stream );
Argumenty
Zwracana wartość
Zwraca liczbę poprawnie wczytanych elementów. Zwrócona wartość może być mniejsza niż wartość 
count jeżeli w trakcie wczytywania danych wystąpił błąd lub został osiągnięty koniec pliku zanim wczytano oczekiwaną liczbę elementów. W celu ustalenia rodzaju błędu jaki wystąpił podczas wczytywania danych należy użyć funkcji 
ferror lub 
feof.
Jeżeli argument 
size lub 
count ma wartość 0, to funkcja zwróci wartość 0 oraz zawartość bufora wyjściowego nie ulegnie zmianie.
Opis szczegółowy
Funkcja odczytuje ze strumienia maksymalnie 
count elementów, gdzie rozmiar każdego elementu wynosi 
size bajtów.
Dodatkowe informacje
Niniejsza funkcja zapisze do bufora maksymalnie 
size*count bajtów w przypadku sukcesu. 
Położenie kursora odczytu danych strumienia jest nieokreślone w przypadku wystąpienia błędu w trakcie odczytu danych. Ponadto nie można określić liczby odczytanych bajtów dla elementu, który nie został w pełni odczytany.
Pamiętaj, że: Liczba faktycznie odczytanych bajtów ze strumienia będzie inna dla strumienia otwartego w trybie binarnym oraz w trybie tekstowym, ponieważ para znaków "\r\n" zostanie zastąpiona jednym znakiem "\n" przy odczycie danych w trybie tekstowym.
  | 
Przykład
#include <cstdio>
bool wyswietlFragmentPliku( const char * _nazwaPliku )
{
    FILE * plik = fopen( _nazwaPliku, "rb" );
    if( !plik )
         return false;
    
    const int LICZBA_ELEMENTOW = 1000;
    
    char bufor[ LICZBA_ELEMENTOW ];
    size_t odczytanychBajtow = fread( bufor, sizeof( char ), LICZBA_ELEMENTOW, plik );
    if( odczytanychBajtow != LICZBA_ELEMENTOW )
         printf( "Odczytano mniej bajtow niz rozmiar bufora.\n" );
    
    printf( "Zawartosc bufora (%d bajtow):", odczytanychBajtow );
    printf( "\n=================\n" );
    printf( "%.*s", odczytanychBajtow, bufor );
    printf( "\n=================\n" );
    fclose( plik );
    return true;
}
int main()
{
    if( !wyswietlFragmentPliku( "main.cpp" ) )
         printf( "Nie udalo sie odczytac pliku.\n" );
    
    return 0;
}
Standardowe wyjście programu:
Odczytano mniej bajtow niz rozmiar bufora.
Zawartosc bufora (740 bajtow):
=================
#include <cstdio>
bool wyswietlFragmentPliku( const char* _nazwaPliku )
{
        FILE* plik = fopen(_nazwaPliku,"rb");
        if(!plik)
                return false;
        const int LICZBA_ELEMENTOW = 1000;
        char bufor[LICZBA_ELEMENTOW];
        size_t odczytanychBajtow = fread (bufor, sizeof( char ), LICZBA_ELEMENTOW, plik);
        if (odczytanychBajtow != LICZBA_ELEMENTOW)
                printf("Odczytano mniej bajtow niz rozmiar bufora.\n.");
        printf("Zawartosc bufora (%d bajtow):",odczytanychBajtow);
        printf("\n=================\n");
        printf("%.*s",odczytanychBajtow, bufor);
        printf("\n=================\n");
        fclose(plik);
        return true;
}
int main()
{
        if(!wyswietlFragmentPliku("main.cpp"))
                printf("Nie udalo sie odczytac pliku.\n");
        return 0;
}
=================
Zagadnienia powiązane
| fwrite | Zapisuje do pliku. (funkcja) | 
|---|
| fgets | Wczytuje jeden wiersz tekstu ze wskazanego strumienia. (funkcja) | 
|---|
| fgetc | Wczytuje znak ze wskazanego strumienia. (funkcja) | 
|---|
Linki zewnętrzne
Wszystkie teksty są chronione prawami autorskimi. Kopiowanie lub rozpowszechnianie treści poza niniejszym serwisem 
jest zabronione.
Powyższe ograniczenie nie dotyczy autora opracowania, któremu przysługuje prawo do rozpowszechniania własnego tekstu wedle własnego uznania.