std::basic_ostream<CharT,Traits>::write
basic_ostream& write( const char_type* s, std::streamsize count ); |
Ведёт себя как UnformattedOutputFunction. После построения и проверки объекта sentry, выводит символы из последовательных позиций в массиве символов, первый элемент которого указан в s. Символы вставляются в выходную последовательность до тех пор, пока не произойдёт одно из следующих событий:
- вставлено ровно
countсимволов - вставка в выходную последовательность завершается неудачей (в этом случае вызывается
setstate(badbit)).
Параметры
| s | - | указатель на строку символов для записи |
| count | - | количество символов для записи |
Возвращаемое значение
*this
Исключения
failure если произошла ошибка (флаг состояния ошибки не goodbit) и exceptions() установлено для выбрасывания исключения для этого состояния. Если внутренняя операция вызывает исключение, оно перехватывается и badbit устанавливается. Если exceptions() установлено для badbit, исключение повторно выбрасывается.
Примечания
Эта функция не перегружена для типов signed char или unsigned char, в отличие от форматированной operator<<.
Также, в отличие от форматированных функций вывода, эта функция не устанавливает failbit при ошибке.
При использовании локальной настройки без преобразования (по умолчанию используется локальная настройка без преобразования), переопределение этой функции в std::basic_ofstream может быть оптимизировано для операций с блоками ввода-вывода без копирования (с помощью переопределения std::streambuf::xsputn).
Пример
Эта функция может использоваться для вывода представлений объектов, т.е. двоичного вывода
#include <iostream>
int main()
{
int n = 0x41424344;
std::cout.write(reinterpret_cast<char*>(&n), sizeof n) << '\n';
char c[] = "This is sample text.";
std::cout.write(c, 4).write("!\n", 2);
}Возможный вывод:
DCBA This!
См. также
| вставляет данные символов или вставляет в правое значение потока (шаблон функции) |
|
| вставляет символ (публичная функция-член) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/io/basic_ostream/write