Namespaces
Variants

std::basic_streambuf<CharT,Traits>:: sputn, std::basic_streambuf<CharT,Traits>:: xsputn

From cppreference.net
std:: streamsize sputn ( const char_type * s, std:: streamsize count ) ;
(1)
protected :
virtual std:: streamsize xsputn ( const char_type * s, std:: streamsize count ) ;
(2)
1) Ruft xsputn ( s, count ) der am stärksten abgeleiteten Klasse auf.
2) Schreibt count Zeichen in die Ausgabesequenz aus dem Zeichenarray, dessen erstes Element durch s gezeigt wird. Die Zeichen werden geschrieben, als ob durch wiederholte Aufrufe von sputc() . Das Schreiben endet, wenn entweder count Zeichen geschrieben wurden oder ein Aufruf von sputc() Traits :: eof ( ) zurückgegeben hätte.

Wenn der Put-Bereich voll wird ( pptr ( ) == epptr ( ) ), ist nicht spezifiziert, ob overflow() tatsächlich aufgerufen wird oder dessen Effekt auf andere Weise erreicht wird.

Inhaltsverzeichnis

Parameter

(keine)

Rückgabewert

Die Anzahl der erfolgreich geschriebenen Zeichen.

Hinweise

"achieved by other means" erlaubt Block-I/O ohne Zwischenpufferung: so übergibt std::ofstream::write() in einigen Implementierungen einfach den Zeiger an den entsprechenden Systemaufruf.

Beispiel

#include <iostream>
#include <sstream>
int main()
{
    std::ostringstream s1;
    std::streamsize sz = s1.rdbuf()->sputn("This is a test", 14);
    s1 << '\n';
    std::cout << "The call to sputn() returned " << sz << '\n'
              << "The output sequence contains " << s1.str();
    std::istringstream s2;
    sz = s2.rdbuf()->sputn("This is a test", 14);
    std::cout << "The call to sputn() on an input stream returned " << sz << '\n';
}

Ausgabe:

The call to sputn() returned 14
The output sequence contains This is a test
The call to sputn() on an input stream returned 0

Fehlerberichte

Die folgenden verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.

DR Angewendet auf Verhalten wie veröffentlicht Korrektes Verhalten
LWG 565 C++98 xsputn() rief stets overflow() auf, falls pptr ( ) == epptr ( ) muss tatsächlich nicht aufgerufen werden

Siehe auch

ruft xsgetn ( )
(öffentliche Elementfunktion)