Namespaces
Variants

std::strstreambuf:: str

From cppreference.net
char * str ( ) ;
(veraltet in C++98)
(entfernt in C++26)

Ruft freeze() auf und gibt dann eine Kopie des Startzeigers des Lesebereichs zurück, std::streambuf::eback() .

Der Beginn des Get-Bereichs, für alle beschreibbaren std::strstreambuf -Objekte, die durch die Schnittstelle von std::strstream erstellt wurden, ist ebenfalls der Beginn des Put-Bereichs.

Inhaltsverzeichnis

Parameter

(keine)

Rückgabewert

Eine Kopie von eback() , die ein Nullzeiger sein kann.

Hinweise

Diese Funktion wird typischerweise über die std::strstream Schnittstelle aufgerufen.

Der Aufruf von freeze() garantiert, dass der zurückgegebene Zeiger bis zum nächsten expliziten Aufruf von freeze ( false ) gültig bleibt: Andernfalls (bei einem dynamischen Puffer) könnte jede Ausgabeoperation eine Pufferneuzuordnung auslösen, die den Zeiger ungültig machen würde. Es verursacht auch einen Speicherverlust im Destruktor von std::strstreambuf , es sei denn, freeze ( false ) wird aufgerufen, bevor der Puffer (oder häufiger, der std:: strstream , der ihn verwaltet) zerstört wird.

Beispiel

#include <iostream>
#include <strstream>
int main()
{
    std::strstream dyn; // dynamisch allozierter Lese-/Schreibpuffer
    dyn << "Test: " << 1.23 << std::ends;
    std::strstreambuf* buf = dyn.rdbuf();
    std::cout << "R/W buffer holds [" << buf->str() // oder dyn.str()
              << "]\n";
    dyn.freeze(false); // nach Aufruf von .str() auf einem dynamischen strstream
    char arr[10];
    std::ostrstream user(arr, 10); // festgroßer Nur-Schreib-Puffer
    buf = user.rdbuf();
    user << 1.23 << std::ends;
    std::cout << "Write-only buffer holds [" << buf->str() // oder user.str()
              << "]\n";
    std::istrstream lit("1 2 3"); // festgroßer Nur-Lese-Puffer
    buf = lit.rdbuf();
    std::cout << "Read-only buffer holds [" << buf->str() // oder lit.str()
              << "]\n";
}

Ausgabe:

R/W buffer holds [Test: 1.23]
Write-only buffer holds [1.23]
Read-only buffer holds [1 2 31 2 3]

Siehe auch

greift auf den Ausgabepuffer zu
(öffentliche Elementfunktion von std::strstream )
greift auf den Ausgabepuffer zu
(öffentliche Elementfunktion von std::ostrstream )
greift auf den Ausgabepuffer zu
(öffentliche Elementfunktion von std::istrstream )