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()...