Cin and getline
Почему после cin getline странно работает? Если ввести только одно слово, то getline пропускается, если ввести через пробел несколько слов, то первое слово идёт в переменную а, а другие слова с пробелом вначале идут в b. Насколько я знаю, cin после себя в буфере ввода оставляет \n, а getline, натыкаясь на него, завершается. Но здесь почему-то другие слова считываются в b.
string a;
cin >> a;
string b;
getline(cin, b);
cout << a << endl;
cout << b << endl;
UPD: cin.ignore(numeric_limits::max(), '\n'); выдает 'требуется идентификатор'
Ответы (1 шт):
cin >> a
считывает одно слово, после чего все остальное до \n
считывается в b
вызовом getline
. Все, как вы описали.
Второй вопрос - о
cin.ignore(numeric_limits::max(), '\n');
numeric_limits
— шаблон, так что ему нужно указать тип, для которого вы хотите вызвать max
. Например, numeric_limits<streamsize>::max()
...