Namespaces
Variants

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

From de.cppreference.net
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> )