Namespaces
Variants

std:: fwrite

From cppreference.net
< cpp ‎ | io ‎ | c
Определено в заголовочном файле <cstdio>
std:: size_t fwrite ( const void * buffer, std:: size_t size, std:: size_t count, std:: FILE * stream ) ;

Записывает до count бинарных объектов из заданного массива buffer в выходной поток stream . Объекты записываются таким образом, как если бы каждый объект переинтерпретировался как массив unsigned char и вызывалась функция std::fputc size раз для каждого объекта, чтобы записать эти unsigned char в stream , по порядку. Индикатор позиции в файле для потока продвигается на количество записанных символов.

Если объекты не являются TriviallyCopyable , поведение не определено.

Если возникает ошибка, результирующее значение индикатора позиции файла для потока становится неопределенным.

Содержание

Параметры

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

Возвращаемое значение

Количество успешно записанных объектов, которое может быть меньше count если произошла ошибка.

Если size или count равны нулю, fwrite возвращает ноль и не выполняет других действий.

Пример

#include <array>
#include <cstdio>
#include <vector>
int main ()
{
    // запись буфера в файл
    if (std::FILE* f1 = std::fopen("file.bin", "wb"))
    {
        std::array<int, 3> v = {42, -1, 7}; // underlying storage of std::array is an array
        std::fwrite(v.data(), sizeof v[0], v.size(), f1);
        std::fclose(f1);
    }
    // чтение тех же данных и вывод на стандартный вывод
    if (std::FILE* f2 = std::fopen("file.bin", "rb"))
    {
        std::vector<int> rbuf(10); // underlying storage of std::vector is also an array
        std::size_t sz = std::fread(rbuf.data(), sizeof rbuf[0], rbuf.size(), f2);
        std::fclose(f2);
        for (std::size_t n = 0; n < sz; ++n)
            std::printf("%d\n", rbuf[n]);
    }
}

Вывод:

42
-1
7

Смотрите также

выводит форматированный вывод в stdout , файловый поток или буфер
(функция)
записывает строку символов в файловый поток
(функция)
читает из файла
(функция)