Пространства имён
Варианты
Действия

std::fread

Материал из cppreference.com
< cpp‎ | io‎ | c
 
 
Библиотеки ввода / вывода
I / O манипуляторов
C-стиль I / O
Буферы
Оригинал:
Buffers
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
basic_streambuf
basic_filebuf
basic_stringbuf
strstreambuf(устарело)
Потоки
Оригинал:
Streams
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Абстракций
Оригинал:
Abstractions
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
ios_base
basic_ios
basic_istream
basic_ostream
basic_iostream
Файл I / O
Оригинал:
File I/O
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
basic_ifstream
basic_ofstream
basic_fstream
Струнный I / O
Оригинал:
String I/O
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
basic_istringstream
basic_ostringstream
basic_stringstream
Массив I / O
Оригинал:
Array I/O
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
istrstream(устарело)
ostrstream(устарело)
strstream(устарело)
Типы
Оригинал:
Types
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
streamoff
streamsize
fpos
Интерфейс Ошибка категории
Оригинал:
Error category interface
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
iostream_category(C++11)
io_errc(C++11)
 
C-стиль I / O
Функции
Оригинал:
Functions
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Доступ к файлам
Оригинал:
File access
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Прямой ввод / вывод
Оригинал:
Direct input/output
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
fread
fwrite
Неформатированная ввода / вывода
Оригинал:
Unformatted input/output
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Форматированный ввод / вывод
Оригинал:
Formatted input/output
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Позиционирование файла
Оригинал:
File positioning
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
ftell
fgetpos
fseek
fsetpos
rewind
Обработка ошибок
Оригинал:
Error handling
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
clearerr
feof
ferror
perror
Операции с файлами
Оригинал:
Operations on files
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
remove
rename
tmpfile
tmpnam
 
Определено в заголовочном файле <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, поток файл или буфер
Оригинал:
reads formatted input from stdin, a file stream or a buffer
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

(функция) [править]
получает строку символов из файла потока
Оригинал:
gets a character string from a file stream
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

(функция) [править]
пишет в файл
Оригинал:
writes to a file
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

(функция) [править]
C documentation for fread