Привет.
Пишу следующий код:
char str1[5];
char str2[3];
cin.getline(str1, 5);
cin.getline(str2, 3);
cout<<endl<<"str1 = "<<str1;
cout<<endl<<"str2 = "<<str2<<endl;
Запускаю программу и ввожу следующее:
4444 33
Вывод:
str1 = 4444
str2 =
Я ожидал, что после ввода поток заполнен так:
4444 33\n.
Значит в
str1 запишется
44443, так как в
str15 ячеек, а первый пробел игнорируется(удаляется ли из потока?), значит в потоке останется
3\n.
В
str2 поместится
3, а символ
\n - является разделителем по умолчанию, и не записывается в
str2, но и удаляется из потока.
Почему же второй вызов
getline ничего не записал в
str2? Если после первого считывания в потоке должна остаться информация:
3\n?
Если я правильно понимаю, первый пробел не считывается из потока, так как воспринимается как разделитель. Он удаляется из него, или остаётся?
Заранее спасибо.