std::basic_stringbuf<CharT,Traits,Allocator>::setbuf
| 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>) |