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

Что делает эта конкретная строка cin.ignore(numeric_limits<streamsize>::max(), '\n'), означающая в программировании на C++? Это фактически игнорирует последний вход пользователя?

Ответ 1

Эта строка игнорирует остальную часть текущей строки, вплоть до '\n' или EOF - в зависимости от того, что наступит раньше:

  • '\n' устанавливает разделитель, то есть символ, после которого cin перестает игнорировать
  • numeric_limits<streamsize>::max() устанавливает максимальное количество символов для игнорирования. Поскольку это верхний предел размера потока, вы эффективно говорите cin, что нет предела количеству игнорируемых символов.

Ответ 2

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

Здесь, \n действует как разделитель.... это точка, до которой код должен игнорироваться (как "\n" в этом особом случае). И max() определяет, что нет предела тому, сколько можно игнорировать, пробелы, символы табуляции должны игнорироваться до конца строки.