std::fwrite
Определено в заголовке <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 ()
{
// write buffer to file
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);
}
// read the same data and print it to the standard output
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
См. также
|
(C++11) | выводит отформатированный вывод в stdout, поток файла или буфер (функция) |
| записывает строку символов в поток файла (функция) |
|
| считывает данные из файла (функция) |
|
C документация для fwrite |
|
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/io/c/fwrite