std::fread
| Определено в заголовочном файле <cstdio>
|
||
std::size_t fread( void* buffer, std::size_t size, std::size_t count, std::FILE* stream ); |
||
Считывает не более чем count элементов в массив buffer из приведенного входного потока stream. Каждый элемент считывается так, как если бы std::fgetc был вызван size раз. Функция сохраняет результаты так, как если бы buffer был массивом unsigned char. Индикатор позиции файла для потока увеличивается на число прочитанных символов.
Если элементы не являются TriviallyCopyable, тогда поведение не определено.
Если возникает ошибка, то результирующее значение индикатора позиции файла для потока не определено стандартом. Если считывается неполный элемент, его значение не определено стандартом.
Параметры
| buffer | — | указатель на первый элемент в массиве для считывания |
| size | — | размер каждого элемента в байтах |
| count | — | число элементов для чтения |
| stream | — | входной файловый поток для чтения |
Возвращаемое значение
Количество успешно считанных элементов, может быть меньше, чем count если возникает ошибка или конец файла.
Если size или count равно нулю, fread возвращает ноль и не выполняет никаких других действий.
Пример
#include <iostream>
#include <cstdio>
#include <fstream>
#include <vector>
int main()
{
// prepare file
std::ofstream("test.txt") << 1 << ' ' << 2 << '\n';
std::FILE* f = std::fopen("test.txt", "r");
std::vector<char> buf(4); // char это тривиально копируемый тип
std::fread(&buf[0], sizeof buf[0], buf.size(), f);
for(char n : buf)
std::cout << n;
std::vector<std::string> buf2; // string нетривиально копируемый тип
// это приведет к неопределенному поведению
// std::fread(&buf2[0], sizeof buf2[0], buf2.size(), f);
}
Вывод:
1 2
См. также
| производит форматированный ввод из stdin, файлового потока или буфера (функция) | |
получает строку символов из файла потока Оригинал: gets a character string from a file stream Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (функция) | |
пишет в файл Оригинал: writes to a file Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (функция) | |
Документация C по fread
| |