operator>>(std::basic_istream)
| Definiert in Header <istream> |
||
| template< class CharT, class Traits > basic_istream<CharT, Traits>& |
(1) | |
| (2) | ||
| template< class CharT, class Traits> basic_istream<CharT, Traits>& |
(bis C++20) | |
| template< class CharT, class Traits, std::size_t N > basic_istream<CharT, Traits>& |
(seit C++20) | |
| template< class Istream, class T > Istream&& |
(3) | (seit C++11) |
ch gespeichert. Wenn kein Zeichen verfügbar ist, wird failbit gesetzt (zusätzlich zu eofbit, das wie für eine FormattedInputFunction erforderlich gesetzt wird).s gezeigt wird, gespeichert. Die Extraktion stoppt, wenn eine der folgenden Bedingungen erfüllt ist:- Ein Leerzeichen (gemäß dem ctype<CharT> Facet) wird gefunden. Das Leerzeichen wird nicht extrahiert.
|
(bis C++20) |
|
(seit C++20) |
- Dateiende tritt in der Eingabesequenz auf (dies setzt auch eofbit).
Istream ein Klassentyp ist, der öffentlich und eindeutig von std::ios_base abgeleitet ist.Inhalt |
[edit] Anmerkungen
Das Extrahieren eines einzelnen Zeichens, das das letzte Zeichen des Streams ist, setzt eofbit nicht: Dies unterscheidet sich von anderen formatierten Eingabefunktionen, wie dem Extrahieren der letzten Ganzzahl mit operator>>, aber dieses Verhalten entspricht dem Verhalten von std::scanf mit dem Format-Spezifizierer "%c".
[edit] Parameter
| st | - | Eingabestream, aus dem die Daten extrahiert werden sollen |
| ch | - | Referenz auf ein Zeichen, in dem das extrahierte Zeichen gespeichert werden soll |
| s | - | Zeiger auf(bis C++20) ein Zeichenarray, in dem die extrahierten Zeichen gespeichert werden sollen |
[edit] Rückgabewert
[edit] Beispiel
#include <iomanip> #include <iostream> #include <sstream> int main() { std::string input = "n greetings"; std::istringstream stream(input); char c; const int MAX = 6; char cstr[MAX]; stream >> c >> std::setw(MAX) >> cstr; std::cout << "c = " << c << '\n' << "cstr = " << cstr << '\n'; double f; std::istringstream("1.23") >> f; // rvalue stream extraction std::cout << "f = " << f << '\n'; }
Ausgabe
c = n cstr = greet f = 1.23
[edit] Fehlerberichte
Die folgenden Verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.
| DR | angewendet auf | Verhalten wie veröffentlicht | Korrigiertes Verhalten |
|---|---|---|---|
| LWG 13 | C++98 | die Definition von n erwähnte einen nicht existierenden Namen eos | ersetzt durch CharT() |
| LWG 68 | C++98 | keine Nullzeichen wurden am Ende der Ausgabe für Überladung (2) gespeichert | speichert ein Nullzeichen |
| LWG 1203 | C++98 | Überladung für rvalue-Stream gab eine lvalue-Referenz auf die Basisklasse zurück | gibt rvalue-Referenz zurück an die abgeleitete Klasse |
| LWG 2328 | C++98 | Überladung für rvalue-Stream erforderte ein weiteres Argument als lvalue | akzeptiert rvalue |
| LWG 2534 | C++98 | Überladung für rvalue-Stream war nicht eingeschränkt | eingeschränkt |
[edit] Siehe auch
| extrahiert formatierte Daten (public member function) |