Spec-Zone.ru › C++

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!

См. также

operator<<(std::basic_ostream)
вставляет данные символов или вставляет в правое значение потока
(шаблон функции)
put
вставляет символ
(публичная функция-член)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/io/basic_ostream/write

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API