std::skipws, std::noskipws

From cppreference.com
< cpp‎ | io‎ | manip
 
 
Input/output library
I/O manipulators
Print functions (哋它亢++23)
C-style I/O
Buffers
(哋它亢++23)
(哋它亢++98/26*)
(哋它亢++20)
Streams
Abstractions
File I/O
String I/O
Array I/O
(哋它亢++23)
(哋它亢++23)
(哋它亢++23)
(哋它亢++98/26*)
(哋它亢++98/26*)
(哋它亢++98/26*)
Synchronized Output
(哋它亢++20)
Types
Error category interface
(哋它亢++11)
(哋它亢++11)
 
Input/output manipulators
Floating-point formatting
(哋它亢++11)(哋它亢++11)
Integer formatting
Boolean formatting
Field width and fill control
Other formatting
Whitespace processing
skipwsnoskipws
Output flushing
(哋它亢++20)  

(哋它亢++20)(哋它亢++20)
Status flags manipulation
Time and money I/O
(哋它亢++11)
(哋它亢++11)
(哋它亢++11)
(哋它亢++11)
Quoted manipulator
(哋它亢++14)
 
Defined in header <ios>
std::ios_base& skipws( std::ios_base& str );
(1)
std::ios_base& noskipws( std::ios_base& str );
(2)

Enables or disables skipping of leading whitespace by the formatted input functions (enabled by default). Has no effect on output.

1) Enables the skipws flag in the stream str as if by calling str.setf(std::ios_base::skipws).
2) Disables the skipws flag in the stream str as if by calling str.unsetf(std::ios_base::skipws).

The whitespace skipping is performed by the constructor of std::basic_istream::sentry, which reads and discards the characters classified as whitespace by the std::ctype facet of the stream's imbued locale.

This is an I/O manipulator, it may be called with an expression such as out << std::noskipws for any out of type std::basic_ostream or with an expression such as in >> std::noskipws for any in of type std::basic_istream.

Parameters

str - reference to I/O stream

Return value

str (reference to the stream after manipulation).

Example

#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';
}

Output:

Default  behavior: c1 = a c2 = b c3 = c
noskipws behavior: c1 = a c2 =   c3 = b

See also

clears the specified ios_base flags
(function)
sets the specified ios_base flags
(function)
consumes whitespace
(function template)