Привет.
Пишу следующий код:
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
, так как в
str1
5
ячеек, а первый пробел игнорируется(удаляется ли из потока?), значит в потоке останется
3\n
.
В
str2
поместится
3
, а символ
\n
- является разделителем по умолчанию, и не записывается в
str2
, но и удаляется из потока.
Почему же второй вызов
getline
ничего не записал в
str2
? Если после первого считывания в потоке должна остаться информация:
3\n
?
Если я правильно понимаю, первый пробел не считывается из потока, так как воспринимается как разделитель. Он удаляется из него, или остаётся?
Заранее спасибо.