std::skipws,std::noskipws(3)

πŸ“¦ version 2024.07.05, in nixpkgs unstable, opensuse-leap 16.0

πŸŽ€ NAME πŸŽ€

okay bestie, welcome to the C++ Standard Libary manual, page std::skipws,std::noskipws(3). The name line is literally std::skipws,std::noskipws - std::skipws,std::noskipws β€” two icons, one page, no notes. πŸ’…

✨ Synopsis ✨

These cuties live in the header <ios>:

Defined in header <ios>
std::ios_base& skipws( std::ios_base& str );   (1)
std::ios_base& noskipws( std::ios_base& str ); (2)

They enable or disable skipping of leading whitespace by the formatted input functions. It’s enabled by default, and it has no effect on output β€” output said β€œnot my problem” fr. πŸ’€

  1. Enables the skipws flag in the stream str as if by calling str.setf(std::ios_base::skipws). Slay, whitespace is getting skipped.
  2. Disables the skipws flag in the stream str as if by calling str.unsetf(std::ios_base::skipws). Bestie, now the whitespace is staying right there.

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. iykyk. 🧚

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. Periodt. πŸ‘‘

🌸 Parameters 🌸

  • str β€” reference to I/O stream. That's the whole parameter, bestie.

πŸ¦‹ Return value πŸ¦‹

  • str β€” reference to the stream after manipulation. It comes right back, changed but still iconic. πŸ’–

πŸ’– Example πŸ’–

// Run this code β€” yes bestie, copy-paste era:

#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). Bye flags.
  • setiosflags β€” sets the specified ios_base flags (function). Hi flags.
  • ws β€” consumes whitespace (function template). Snack time for whitespace. πŸ“

πŸ’– source: http://cppreference.com Β· version/date: 2024.06.10 Β· page: std::skipws,std::noskipws(3) β€” mwah, bye bestie! πŸŽ€

πŸ“¦ where this page comes from