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

std::fread

Материал из cppreference.com
< cpp‎ | io‎ | c
 
 
Библиотеки ввода / вывода
I / O манипуляторов
C-стиль I / O
Буферы
Оригинал:
Buffers
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Потоки
Оригинал:
Streams
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Абстракций
Оригинал:
Abstractions
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Файл I / O
Оригинал:
File I/O
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Струнный I / O
Оригинал:
String I/O
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Массив I / O
Оригинал:
Array I/O
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Типы
Оригинал:
Types
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Интерфейс Ошибка категории
Оригинал:
Error category interface
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
 
C-стиль I / O
Функции
Оригинал:
Functions
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Доступ к файлам
Оригинал:
File access
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Прямой ввод / вывод
Оригинал:
Direct input/output
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
fread
Неформатированная ввода / вывода
Оригинал:
Unformatted input/output
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Форматированный ввод / вывод
Оригинал:
Formatted input/output
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Позиционирование файла
Оригинал:
File positioning
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Обработка ошибок
Оригинал:
Error handling
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Операции с файлами
Оригинал:
Operations on files
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
 
Defined in header <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.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

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