Форум программистов, компьютерный форум CyberForum.ru

Почему istream::get() ? - C++

Восстановить пароль Регистрация
 
andrejap
13 / 13 / 1
Регистрация: 21.04.2013
Сообщений: 245
15.02.2014, 17:18     Почему istream::get() ? #1
Здравствуйте.
Почему перед istream::getline, необходимо делать get(), если перед этим было cin >> char_array (filein >> char_array)? А между двумя cin >> char_array (filein >> char_array) не нужно?
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.02.2014, 17:18     Почему istream::get() ?
Посмотрите здесь:

istream и конец строки C++
C++ istream, ostream
C++ istream - считывание определённой строки
Объект cin и класс istream C++
Выделение памяти для буффера, под std::istream& operator>>(std::istream &, String &) C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
 Аватар для zss
5950 / 5555 / 1786
Регистрация: 18.12.2011
Сообщений: 14,196
Завершенные тесты: 1
15.02.2014, 17:23     Почему istream::get() ? #2
После операции ввода переменных указатель потока остается на символе
конца строки ('\n'). Поэтому очередной getline считывает строку,
содержащую только этот символ.
andrejap
13 / 13 / 1
Регистрация: 21.04.2013
Сообщений: 245
15.02.2014, 17:40  [ТС]     Почему istream::get() ? #3
zss, тогда у меня напрашивается вопрос: почему в случае
cin >> char_array;
cout << char_array;
cin >> char_array;
cout << char_array;

во втором выводе мы не видим этот '\n' на экране как пустую строку?
zss
Модератор
Эксперт С++
 Аватар для zss
5950 / 5555 / 1786
Регистрация: 18.12.2011
Сообщений: 14,196
Завершенные тесты: 1
15.02.2014, 17:52     Почему istream::get() ? #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
cin в начале пропускает пробельные символы (в т.ч. и конец строки).
andrejap
13 / 13 / 1
Регистрация: 21.04.2013
Сообщений: 245
15.02.2014, 17:57  [ТС]     Почему istream::get() ? #5
Cпасибо, zss!
Yandex
Объявления
15.02.2014, 17:57     Почему istream::get() ?
Ответ Создать тему
Опции темы

Текущее время: 11:33. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru