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 der Effekt implementierungsdefiniert: Manche Implementierungen tun nichts, während andere Implementierungen das std::string Mitglied, das derzeit als Puffer verwendet wird, löschen und beginnen, das benutzerdefinierte Zeichenarray der Größe n , dessen erstes Element durch s gezeigt wird, als Puffer und die Eingabe-/Ausgabesequenz zu verwenden.
Diese Funktion ist geschützt virtuell, sie darf nur über
pubsetbuf()
oder von Memberfunktionen einer benutzerdefinierten Klasse aufgerufen werden, die von
std::basic_stringbuf
abgeleitet ist.
Inhaltsverzeichnis |
Parameter
| s | - | Zeiger auf das erste CharT im benutzerbereitgestellten Puffer oder null |
| n | - | Anzahl der CharT-Elemente im benutzerbereitgestellten Puffer oder null |
Rückgabewert
this
Hinweise
Der veraltete Streampuffer
std::
strstreambuf
oder das Boost.IOStreams-Device
boost::basic_array
kann zur Implementierung von I/O-Pufferung über einem benutzerdefinierten char-Array auf portable Weise verwendet werden.
Beispiel
Test für die setbuf-Funktionalität des stringstream.
#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++)
Siehe auch
|
ruft
setbuf
(
)
(öffentliche Elementfunktion von
std::basic_streambuf<CharT,Traits>
)
|