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

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

fread () прототип

 size_t fread (пустота * буфер, размер size_t, количество size_t, FILE * поток);

fread()Функция считывает подсчет количество объектов, каждый из размера размера байт из заданного входного потока. Это похоже на вызов fgetc () size times для чтения каждого объекта. Индикатор позиции файла увеличивается в соответствии с количеством прочитанных символов.

Результирующее значение индикатора положения файла для потока не определено, если при чтении файла возникает какая-либо ошибка.

Если объекты нельзя просто скопировать, поведение не определено.

Если размер или счетчик равны нулю, вызов freadвернет ноль и никаких других действий не будет.

Это определено в заголовочном файле.

Параметры fread ()

  • буфер: указатель на блок памяти для хранения объектов.
  • size: Размер каждого объекта в байтах.
  • count: количество объектов для чтения.
  • stream: файловый поток, из которого будут считываться данные.

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 Бьярн Страуструп: C ++ Гвидо ван Россум: Python Джеймс Гослинг: Java

Когда вы запустите программу, вывод будет:

 Деннис Ричи: C Бьярн Страуструп: C ++ Гвидо ван Россум: Python Джеймс Гослинг: Java

Пример 2: Как работает функция fread (), когда значение count или size равно нулю

 #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 Когда size = 0, возвращаемое значение = 0

Интересные статьи...