Namensräume
Varianten
Aktionen

std::basic_stringbuf<CharT,Traits,Allocator>::setbuf

Von cppreference.com
< cpp‎ | io‎ | basic stringbuf
 
 
 
 
protected:
virtual std::basic_streambuf<CharT, Traits>* setbuf( char_type* s, std::streamsize n )

Wenn s ein Nullzeiger ist und n Null ist, hat diese Funktion keine Auswirkung.

Andernfalls ist die Auswirkung implementierungsabhängig: Einige Implementierungen tun nichts, während einige Implementierungen den std::string-Member, der derzeit als Puffer verwendet wird, löschen und mit dem vom Benutzer bereitgestellten Zeichen-Array der Größe n, dessen erstes Element von s gezeigt wird, als Puffer und Ein-/Ausgabe-Zeichensequenz beginnen.

Diese Funktion ist ein protected virtual, sie kann nur über pubsetbuf() oder aus Memberfunktionen einer von std::basic_stringbuf abgeleiteten benutzerdefinierten Klasse aufgerufen werden.

Inhalt

[edit] Parameter

s - Zeiger auf das erste CharT im vom Benutzer bereitgestellten Puffer oder Null
n - Die Anzahl der CharT-Elemente im vom Benutzer bereitgestellten Puffer oder Null

[edit] Rückgabewert

this

[edit] Anmerkungen

Der veraltete Stream-Puffer std::strstreambuf oder das Boost.IOStreams-Gerät boost::basic_array können verwendet werden, um die I/O-Pufferung über ein vom Benutzer bereitgestelltes Zeichen-Array auf portable Weise zu implementieren.

[edit] Beispiel

Test der setbuf-Funktionalität des stringstreams.

#include <iostream>
#include <sstream>
 
int main()
{
    std::ostringstream ss;
    char c[1024] = {};
    ss.rdbuf()->pubsetbuf(c, 1024);
    ss << 3.14 << '\n';
    std::cout << c << '\n';
}

Ausgabe

3.14 (on GNU g++/libstdc++ and SunPro C++/roguewave)
<nothing> (on MS Visual Studio 2010, SunPro C++/stlport4, CLang++/libc++)

[edit] Siehe auch

ruft setbuf() auf
(öffentliche Member-Funktion von std::basic_streambuf<CharT,Traits>) [bearbeiten]