Namensräume
Varianten
Aktionen

std::basic_ostream<CharT,Traits>::write

Von cppreference.com
< cpp‎ | io‎ | basic ostream
 
 
 
 
basic_ostream& write( const char_type* s, std::streamsize count );

Verhält sich wie eine UnformattedOutputFunction. Nach der Konstruktion und Überprüfung des Sentry-Objekts werden die Zeichen von aufeinanderfolgenden Positionen im Zeichenarray ausgegeben, auf dessen erstes Element von s verwiesen wird. Zeichen werden in die Ausgabesequenz eingefügt, bis eines der folgenden Ereignisse eintritt:

  • genau count Zeichen werden eingefügt
  • das Einfügen in die Ausgabesequenz schlägt fehl (in diesem Fall wird setstate(badbit) aufgerufen).

Inhalt

[edit] Parameter

s - Zeiger auf die zu schreibende Zeichenkette
zählt - Anzahl der zu schreibenden Zeichen

[edit] Rückgabewert

*this

[edit] Ausnahmen

failure, wenn ein Fehler aufgetreten ist (der Fehlerstatus-Flag ist nicht goodbit) und exceptions() für diesen Zustand zum Werfen gesetzt ist.

Wenn eine interne Operation eine Ausnahme auslöst, wird diese abgefangen und badbit gesetzt. Wenn exceptions() für badbit gesetzt ist, wird die Ausnahme erneut ausgelöst.

[edit] Hinweise

Diese Funktion ist für die Typen signed char oder unsigned char nicht überladen, im Gegensatz zum formatierten operator<<.

Außerdem setzt diese Funktion im Gegensatz zu den formatierten Ausgabefunktionen im Fehlerfall nicht das failbit.

Bei Verwendung einer nicht-konvertierenden Locale (die Standard-Locale ist nicht-konvertierend) kann die Überschreibung dieser Funktion in std::basic_ofstream für Zero-Copy-Bulk-I/O optimiert sein (durch Überschreiben von std::streambuf::xsputn).

[edit] Beispiel

Diese Funktion kann zur Ausgabe von Objekt-Repräsentationen, d.h. binären Ausgaben, verwendet werden.

#include <iostream>
 
int main()
{
    int n = 0x41424344;
    std::cout.write(reinterpret_cast<char*>(&n), sizeof n) << '\n';
 
    char c[] = "This is sample text.";
    std::cout.write(c, 4).write("!\n", 2);
}

Mögliche Ausgabe

DCBA
This!

[edit] Siehe auch

fügt Zeichendaten ein oder fügt in einen rvalue-Stream ein
(function template) [bearbeiten]
fügt ein Zeichen ein
(public member function) [bearbeiten]