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/cpp/io/c/fwrite