Ignore is exactly what the name implies.
It doesn’t “throw away” something you don’t need instead, it ignores the amount of characters you specify when you call it, up to the char you specify as a breakpoint.
It works with both input and output buffers.
std::cin statements you use ignore before you do a
getline call, because when a user inputs something with
std::cin, they hit enter and a
'\n' char gets into the
cin buffer. Then if you use
getline, it gets the newline char instead of the string you want. So you do a
std::cin.ignore(1000,'\n') and that should clear the buffer up to the string that you want. (The 1000 is put there to skip over a specific amount of chars before the specified break point, in this case, the \n newline character.)