std::basic_istream::ignore(3)
π
std::basic_istream::ignore π
okay bestie, welcome to the std::basic_istream::ignore(3) page from the C++ Standard Libary manual π this one is literally about yeeting characters out of an input stream, and ngl it's kind of iconic.
πΈ NAME πΈ
std::basic_istream::ignore β yep, it's std::basic_istream::ignore again, main character energy π
π Synopsis π
Here's the signature, bestie β copy it exactly, no cap:
basic_istream& ignore( std::streamsize count = 1, int_type delim =
Traits::eof()
);
So what does it do? It extracts and discards characters from the input stream until and including delim. Bye-bye, unwanted input π«Ά
ignore behaves as an UnformattedInputFunction. After constructing and checking the sentry object, it extracts characters from the stream and discards them until any of these conditions happens:
countcharacters were extracted. This test is disabled in the special case whencountequalsstd::numeric_limits<std::streamsize>::max().- an end-of-file condition occurs in the input sequence, in which case the function calls
setstate(eofbit). - the next available character
cin the input sequence isdelim, as determined byTraits::eq_int_type(Traits::to_int_type(c), delim). The delimiter character is extracted and discarded. This test is disabled ifdelimisTraits::eof().
π Parameters π
countβ number of characters to extract.delimβ delimiting character to stop the extraction at. It is also extracted.
β¨ Return value β¨
*this
π₯ Exceptions π₯
failureif an error occurred (the error state flag is notgoodbit) andexceptions()is set to throw for that state.- If an internal operation throws an exception, it is caught and
badbitis set. Ifexceptions()is set forbadbit, the exception is rethrown.
π¦ Example π¦
The following example uses ignore to skip over non-numeric input:
// Run this code
#include <iostream>
#include <limits>
#include <sstream>
constexpr auto max_size = std::numeric_limits<std::streamsize>::max();
int main()
{
std::istringstream input("1\n"
"some non-numeric input\n"
"2\n");
for (;;)
{
int n;
input >> n;
if (input.eof() || input.bad())
break;
else if (input.fail())
{
input.clear(); // unset failbit
input.ignore(max_size, '\n'); // skip bad input
}
else
std::cout << n << '\n';
}
}
Output:
1
2
π Defect reports π
The following behavior-changing defect reports were applied retroactively to previously published C++ standards.
- DR
LWG 172β applied toC++98: the type ofcountwas misspecified asint; the corrected behavior isstd::streamsize.
π See also π
getβ extracts characters (public member function)getlineβ extracts characters until the given character is found (public member function)
mwah π this page came from http://cppreference.com, dated 2024.06.10, for std::basic_istream::ignore(3) β k bye bestie, go ignore some bad input π«Άβ¨
π¦ where this page comes from
- nixpkgs unstable: stdman 2024.07.05
- opensuse-leap 16.0: stdman 2024.07.05-bp160.1.9 Β· MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms