cin.ignore(numeric_limits<streamsize>::max(), '\n')

Zyi picture Zyi · Jul 29, 2014 · Viewed 42.1k times · Source

What does cin.ignore(numeric_limits<streamsize>::max(), '\n') mean in C++?

Does it actually ignore the last input from the user?

Answer

Sergey Kalinichenko picture Sergey Kalinichenko · Jul 29, 2014

This line ignores the rest of the current line, up to '\n' or EOF - whichever comes first:

  • '\n' sets the delimiter, i.e. the character after which cin stops ignoring
  • numeric_limits<streamsize>::max() sets the maximum number of characters to ignore. Since this is the upper limit on the size of a stream, you are effectively telling cin that there is no limit to the number of characters to ignore.