C ++ fread () - Стандартна бібліотека C ++

Функція fread () у C ++ зчитує вказану кількість символів із заданого вхідного потоку.

прототип fread ()

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

fread()Функція зчитує підрахунок кількість об'єктів, кожен з розміру розміру байт із заданого вхідного потоку. Це схоже на виклик часу fgetc () для читання кожного об’єкта. Відповідно до кількості прочитаних символів індикатор положення файлу збільшується.

Отримане значення показника позиції файлу для потоку є невизначеним, якщо під час читання файлу виникає помилка.

Якщо об’єкти не можна тривіально скопіювати, поведінка не визначена.

Якщо розмір або кількість дорівнюють нулю, виклик до freadповерне нуль, і ніяких інших дій не виконується.

Це визначається у файлі заголовка.

параметри fread ()

  • буфер: вказівник на блок пам'яті для зберігання об'єктів.
  • size: Розмір кожного об’єкта в байтах.
  • count: Кількість об’єктів для читання.
  • потік: потік файлів для читання даних.

fread () Повернене значення

В fread()Функція повертає кількість об'єктів , успішно лічені. Якщо виникає помилка або стан кінця файлу, значення, що повертається, може бути менше, ніж count.

Приклад 1: Як працює функція 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; )

Припустимо, файл містить такі дані:

 Денніс Річі: C Bjarne Stroustrup: C ++ Гвідо ван Россум: Python Джеймс Гослінг: Java

Коли ви запускаєте програму, результат буде:

 Денніс Річі: C Bjarne Stroustrup: C ++ Гвідо ван Россум: Python Джеймс Гослінг: Java

Приклад 2: Як працює функція fread (), коли кількість або розмір дорівнює нулю

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

Коли ви запускаєте програму, результат буде:

 Коли count = 0, повертається значення = 0 Коли розмір = 0, повертається значення = 0

Цікаві статті...