std::strstreambuf:: str
|
char
*
str
(
)
;
|
(устарело в C++98)
(удалено в C++26) |
|
Вызывает 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; // динамически выделяемый буфер для чтения/записи dyn << "Test: " << 1.23 << std::ends; std::strstreambuf* buf = dyn.rdbuf(); std::cout << "Буфер чтения/записи содержит [" << buf->str() // или dyn.str() << "]\n"; dyn.freeze(false); // после вызова .str() на динамическом strstream char arr[10]; std::ostrstream user(arr, 10); // буфер фиксированного размера только для записи buf = user.rdbuf(); user << 1.23 << std::ends; std::cout << "Буфер только для записи содержит [" << buf->str() // или user.str() << "]\n"; std::istrstream lit("1 2 3"); // буфер фиксированного размера только для чтения buf = lit.rdbuf(); std::cout << "Буфер только для чтения содержит [" << buf->str() // или lit.str() << "]\n"; }
Вывод:
Буфер чтения/записи содержит [Test: 1.23] Буфер только для записи содержит [1.23] Буфер только для чтения содержит [1 2 31 2 3]
Смотрите также
|
обращается к выходному буферу
(публичная функция-член
std::strstream
)
|
|
|
обращается к выходному буферу
(публичная функция-член
std::ostrstream
)
|
|
|
обращается к выходному буферу
(публичная функция-член
std::istrstream
)
|