Привет.
Пишу следующий код:
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?
Если я правильно понимаю, первый пробел не считывается из потока, так как воспринимается как разделитель. Он удаляется из него, или остаётся?
Заранее спасибо.