std::strstreambuf::str
char* str(); |
Вызывает freeze(), а затем возвращает копию указателя начала области получения, std::streambuf::eback().
Начало области получения для всех записываемых std::strstreambuf объектов, созданных через интерфейс, предоставленный std::strstream, также является началом области записи.
Параметры
(нет)
Возвращаемое значение
Копия eback(), которая может быть нулевым указателем.
Примечания
Эта функция обычно вызывается через интерфейс std::strstream.
Вызов freeze() гарантирует, что возвращаемый указатель остается действительным до следующего явного вызова freeze(false): в противном случае (в динамическом буфере) любая операция вывода может вызвать перераспределение буфера, что сделает указатель недействительным. Он также вызывает утечку памяти в деструкторе std::strstreambuf, если freeze(false) не вызывается до разрушения буфера (или, чаще, std::strstream, который его управляет).
Пример
#include <iostream>
#include <strstream>
int main()
{
std::strstream dyn; // dynamically-allocated read/write buffer
dyn << "Test: " << 1.23 << std::ends;
std::strstreambuf* buf = dyn.rdbuf();
std::cout << "R/W buffer holds [" << buf->str() // or dyn.str()
<< "]\n";
dyn.freeze(false); // after calling .str() on a dynamic strstream
char arr[10];
std::ostrstream user(arr, 10); // fixed-size write-only buffer
buf = user.rdbuf();
user << 1.23 << std::ends;
std::cout << "Write-only buffer holds [" << buf->str() // or user.str()
<< "]\n";
std::istrstream lit("1 2 3"); // fixed-size read-only buffer
buf = lit.rdbuf();
std::cout << "Read-only buffer holds [" << buf->str() // or lit.str()
<< "]\n";
}Вывод:
R/W buffer holds [Test: 1.23] Write-only buffer holds [1.23] Read-only buffer holds [1 2 31 2 3]
См. также
| получает буфер вывода (публичный член-функция std::strstream) |
|
| получает буфер вывода (публичный член-функция std::ostrstream) |
|
| получает буфер вывода (публичный член-функция std::istrstream) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/io/strstreambuf/str