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
. Falls kein Zeichen verfügbar ist, setzt es
failbit
(zusätzlich zu
eofbit
, das wie für eine
FormattedInputFunction
erforderlich gesetzt wird).
s
gezeigt wird. Die Extraktion stoppt, wenn eine der folgenden Bedingungen erfüllt ist:
- Ein Leerzeichenzeichen (bestimmt durch die ctype<CharT> Facette) gefunden wird. Das Leerzeichenzeichen wird nicht extrahiert.
|
(bis C++20) |
|
(seit C++20) |
- Das Ende der Datei in der Eingabesequenz auftritt (dies setzt auch eofbit ).
Istream
ein Klassentyp ist, der öffentlich und eindeutig von
std::ios_base
abgeleitet ist.
Inhaltsverzeichnis |
Hinweise
Das Extrahieren eines einzelnen Zeichens, das das letzte Zeichen des Streams ist, setzt nicht
eofbit
: 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
"%c"
Format-Spezifizierer.
Parameter
| st | - | Eingabestrom, aus dem die Daten extrahiert werden |
| ch | - | Referenz auf ein Zeichen, in dem das extrahierte Zeichen gespeichert wird |
| s | - | Zeiger auf (bis C++20) ein Zeichenarray, in dem die extrahierten Zeichen gespeichert werden |
Rückgabewert
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
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 13 | C++98 | die Definition von n erwähnte einen nicht existierenden Namen eos | ersetzt durch CharT ( ) |
| LWG 68 | C++98 | für Überladung (2) wurden keine Nullzeichen am Ende der Ausgabe gespeichert | speichert ein Nullzeichen |
| LWG 1203 | C++98 | Überladung für Rvalue-Stream gab Lvalue-Referenz auf die Basisklasse zurück |
gibt Rvalue-Referenz
auf die abgeleitete Klasse zurück |
| LWG 2328 | C++98 | Überladung für Rvalue-Stream erforderte, dass ein weiteres Argument ein Lvalue ist | wurde geändert, um Rvalue zu akzeptieren |
| LWG 2534 | C++98 | Überladung für Rvalue-Stream war nicht eingeschränkt | eingeschränkt |
Siehe auch
|
extrahiert formatierte Daten
(öffentliche Elementfunktion) |