◐ Shell
clean mode source ↗

std::basic_stringbuf::basic_stringbuf — cppreference.com

Материал из cppreference.com

<metanoindex/>

<tbody> </tbody>

explicit basic_stringbuf(std::ios_base::openmode which = std::ios_base::in | std::ios_base::out);

(1)

explicit basic_stringbuf (const std::basic_string<CharT, traits, Allocator>& new_str, std::ios_base::openmode which = std::ios_base::in | std::ios_base::out);

(2)

basic_stringbuf(const basic_stringbuf& rhs) = delete;

(3)

basic_stringbuf(basic_stringbuf&& rhs);

(4) (начиная с C++11)

1)

Создает std::basic_stringbuf объекта: инициализация базового класса, вызвав конструктор по умолчанию std::basic_streambuf, инициализирует последовательность символов с пустой строкой, и устанавливает режим which.

Оригинал:

Constructs a std::basic_stringbuf object: initializes the base class by calling the default constructor of std::basic_streambuf, initializes the character sequence with an empty string, and sets the mode to which.

Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

3)

Конструктор копирования удаляется; std::basic_stringbuf не CopyConstructible

Оригинал:

The copy constructor is deleted; std::basic_stringbuf is not CopyConstructible

Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

4)

Move-строит std::basic_stringbuf объекта, перемещая все государство от другого объекта std::basic_stringbuf rhs, в том числе связанные строки, открытом режиме, язык, и все другие государства. После переезда, шесть указателей std::basic_streambuf в *this гарантированно будут отличаться от соответствующих указателей в переехал из-rhs если нулевой.

Оригинал:

Move-constructs a std::basic_stringbuf object by moving all state from another std::basic_stringbuf object rhs, including the associated string, the open mode, the locale, and all other state. After the move, the six pointers of std::basic_streambuf in *this are guaranteed to be different from the corresponding pointers in the moved-from rhs unless null.

Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

Параметры

new_str

basic_string используется для инициализации буфера

Оригинал:

a basic_string used to initialize the buffer

Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

rhs

другой basic_stringbuf

Оригинал:

another basic_stringbuf

Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

mode

указывает поток открытом режиме. Это битовая маска типа, определены следующие константы:

Константа Описание
app перемещаться к концу потока перед каждой записью
binary открыть в двоичном режиме
in открыть для чтения
out открыть для записи
trunc удалить содержимое потока при открытии
ate переместиться к концу потока сразу после открытия
noreplace (C++23) открыть в режиме исключающего доступа

Оригинал:

specifies stream open mode. It is bitmask type, the following constants are defined:

Константа Описание
app перемещаться к концу потока перед каждой записью
binary открыть в двоичном режиме
in открыть для чтения
out открыть для записи
trunc удалить содержимое потока при открытии
ate переместиться к концу потока сразу после открытия
noreplace (C++23) открыть в режиме исключающего доступа

Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

Заметки

Обычно вызывается конструктор std::basic_stringstream.

Оригинал:

Typically called by the constructor of std::basic_stringstream.

Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

Уровень поддержки открытых режимах, отличных от std::ios_base::in и std::ios_base::out варьируется в зависимости от реализации. C + +11 явно указывает поддержки std::ios_base::ate в str() и в этом конструкторе, но std::ios_base::app, std::ios_base::trunc, и std::ios_base::binary оказывают различное влияние на разные реализации.

Оригинал:

The level of support for the open modes other than std::ios_base::in and std::ios_base::out varies among implementations. C++11 explicitly specifies the support for std::ios_base::ate in str() and in this constructor, but std::ios_base::app, std::ios_base::trunc, and std::ios_base::binary have different effects on different implementations.

Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

Пример

Демонстрация вызова конструктора basic_stringbuf непосредственно .

Оригинал:

Demonstrates calling the constructor of basic_stringbuf directly.

Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

#include <iostream>
#include <sstream>
int main()
{
    // default constructor (mode = in|out)
    std::stringbuf buf1;
    buf1.sputc('1');
    std::cout << &buf1 << '\n';

    // string constructor in at-end mode (C++11)
    std::stringbuf buf2("test", std::ios_base::in
                              | std::ios_base::out
                              | std::ios_base::ate);
    buf2.sputc('1');
    std::cout << &buf2 << '\n';

    // append mode test (results differ among compilers)
    std::stringbuf buf3("test", std::ios_base::in
                              | std::ios_base::out
                              | std::ios_base::app);
    buf3.sputc('1');
    buf3.pubseekpos(1);
    buf3.sputc('2');
    std::cout << &buf3 << '\n';
}

Вывод:

1
test1
est12 (Sun Studio) 2st1 (GCC)

См. также

строит строку поток

Оригинал:

constructs the string stream

Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.


(public функция-элемент std::basic_stringstream) [править]