Что делает эта конкретная строка cin.ignore(numeric_limits<streamsize>::max(), '\n')
, означающая в программировании на C++? Это фактически игнорирует последний вход пользователя?
Cin.ignore(numeric_limits <streamsize>:: max(), '\n')
Ответ 1
Эта строка игнорирует остальную часть текущей строки, вплоть до '\n'
или EOF
- в зависимости от того, что наступит раньше:
-
'\n'
устанавливает разделитель, то есть символ, после которогоcin
перестает игнорировать -
numeric_limits<streamsize>::max()
устанавливает максимальное количество символов для игнорирования. Поскольку это верхний предел размера потока, вы эффективно говоритеcin
, что нет предела количеству игнорируемых символов.
Ответ 2
cin.ignore(numeric_limits <streamsize> :: max(), '\n');
Здесь, \n
действует как разделитель.... это точка, до которой код должен игнорироваться (как "\n" в этом особом случае). И max()
определяет, что нет предела тому, сколько можно игнорировать, пробелы, символы табуляции должны игнорироваться до конца строки.