std::skipws, std::noskipws
Von cppreference.com
| Definiert in Header <ios> |
||
| std::ios_base& skipws( std::ios_base& str ); |
(1) | |
| std::ios_base& noskipws( std::ios_base& str ); |
(2) | |
Aktiviert oder deaktiviert das Überspringen von führenden Leerzeichen durch die formatierten Eingabefunktionen (standardmäßig aktiviert). Hat keine Auswirkung auf die Ausgabe.
1) Aktiviert das
skipws-Flag im Stream str, als ob str.setf(std::ios_base::skipws) aufgerufen würde.2) Deaktiviert das
skipws-Flag im Stream str, als ob str.unsetf(std::ios_base::skipws) aufgerufen würde.Das Überspringen von Leerzeichen wird durch den Konstruktor von std::basic_istream::sentry durchgeführt, der die als Leerzeichen klassifizierten Zeichen gemäß der std::ctype-Facette der dem Stream zugeordneten Locale liest und verwirft.
Dies ist ein I/O-Manipulator, er kann mit einem Ausdruck wie out << std::noskipws für jedes out vom Typ std::basic_ostream oder mit einem Ausdruck wie in >> std::noskipws für jedes in vom Typ std::basic_istream aufgerufen werden.
Inhalt |
[bearbeiten] Parameter
| str | - | Referenz auf einen E/A-Stream. |
[bearbeiten] Rückgabewert
str (Referenz auf den Stream nach der Manipulation).
[bearbeiten] Beispiel
Führen Sie diesen Code aus
#include <iostream> #include <sstream> int main() { char c1, c2, c3; std::istringstream("a b c") >> c1 >> c2 >> c3; std::cout << "Default behavior:" " c1 = " << c1 << " c2 = " << c2 << " c3 = " << c3 << '\n'; std::istringstream("a b c") >> std::noskipws >> c1 >> c2 >> c3; std::cout << "noskipws behavior:" " c1 = " << c1 << " c2 = " << c2 << " c3 = " << c3 << '\n'; }
Ausgabe
Default behavior: c1 = a c2 = b c3 = c noskipws behavior: c1 = a c2 = c3 = b
[bearbeiten] Siehe auch
| Löscht die angegebenen ios_base-Flags (Funktion) | |
Setzt die angegebenen ios_base-Flags(Funktion) | |
| Verbraucht Leerzeichen (Funktion-Template) |