# std::skipws, std::noskipws

From cppreference.com
< cpp‎ | io‎ | manip

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

Run this code

    #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

resetiosflags | clears the specified ios_base flags (function)
setiosflags | sets the specified ios_base flags (function)

Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/io/manip/skipws&oldid=57934"