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 , поведение не определено.
Если возникает ошибка, результирующее значение индикатора позиции файла для потока становится неопределенным.
СодержаниеПараметры
Возвращаемое значениеКоличество успешно записанных объектов, которое будет меньше Если Пример
Запустить этот код
#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 Смотрите также
| ||||||||||||||||||||