std:: ws
|
Definiert in Header
<istream>
|
||
|
template
<
class
CharT,
class
Traits
>
std:: basic_istream < CharT, Traits > & ws ( std:: basic_istream < CharT, Traits > & is ) ; |
||
Entfernt führende Leerzeichen aus einem Eingabestrom.
Verhält sich wie eine UnformattedInputFunction , mit der Ausnahme, dass is. gcount ( ) nicht modifiziert wird. Nach dem Konstruieren und Prüfen des Sentry-Objekts extrahiert es Zeichen aus dem Stream und verwirft sie, bis eine der folgenden Bedingungen eintritt:
-
Eine Dateiende-Bedingung tritt in der Eingabesequenz auf (in diesem Fall ruft die Funktion
setstate
(
eofbit
)
auf, setzt jedoch nicht
failbit; dies gilt nicht, wenn daseofbitbereits vor dem Aufruf vonwsauf is gesetzt war, in welchem Fall die Konstruktion des Sentry-Objektsfailbitsetzen würde).
- das nächste verfügbare Zeichen c in der Eingabesequenz ist kein Leerzeichen, wie bestimmt durch std:: isspace ( c, is. getloc ( ) ) . Das Nicht-Leerzeichen-Zeichen wird nicht extrahiert.
Dies ist ein Nur-Eingabe-I/O-Manipulator, er kann mit einem Ausdruck wie in >> std :: ws für jedes in vom Typ std::basic_istream aufgerufen werden.
Inhaltsverzeichnis |
Parameter
| ist | - | Referenz auf Eingabestream |
Rückgabewert
is (Referenz auf den Stream nach der Extraktion aufeinanderfolgender Leerzeichen).
Hinweise
Wenn
eofbit
vor dem Aufruf im Stream gesetzt ist, wird die Konstruktion des Sentry-Objekts
failbit
setzen.
Beispiel
#include <iomanip> #include <iostream> #include <istream> #include <sstream> #include <string> int main() { for (const char* str : {" #1 test", "\t #2 test", "#3 test"}) { std::string line; std::getline(std::istringstream{str}, line); std::cout << "getline returns:\t" << std::quoted(line) << '\n'; std::istringstream iss{str}; std::getline(iss >> std::ws, line); std::cout << "ws + getline returns:\t" << std::quoted(line) << '\n'; } }
Ausgabe:
getline returns: " #1 test" ws + getline returns: "#1 test" getline returns: " #2 test" ws + getline returns: "#2 test" getline returns: "#3 test" ws + getline returns: "#3 test"
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 415 | C++98 |
Aufruf von
std::ws
könnte das Sentry-Objekt nicht konstruieren
(inkonsistent mit anderen Eingabefunktionen) |
muss das Sentry-Objekt
konstruieren |
Siehe auch
|
extrahiert und verwirft Zeichen, bis das angegebene Zeichen gefunden wird
(öffentliche Elementfunktion von
std::basic_istream<CharT,Traits>
)
|