Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Работа с потоком cin.

6.6K
20 апреля 2008 года
Ordos
105 / / 02.11.2007
Вот код:
 
Код:
string s;
while(true)
{
cin >> s;
}


если при первом проходе цикла ввести "1 2 3 4 5" (все цыфры разелены пробелом), то в s считается "1", а при последующих четырёх проходах цикла ввоить ничего не нужно будет, в s будет заноситься следующее "слово", те "2", "3", итд. на шестом цикле программа снова предложит ввести новую строку.

Как отслеить ситуацию, когда больше нельзя автоматом брать из потока значения?
Я хочу введёную строку разбить на слова и отельно их поместить в коллекцию, причём именно через потоки.
320
20 апреля 2008 года
m_Valery
1.0K / / 08.01.2007
 
Код:
...
             
         istream_iterator<string> iter(cin);
    vector<string> coll(iter,istream_iterator<string>());
...

Или так
 
Код:
...          
         string s;
    vector<string> coll;
    while(getline(cin,s,' '))
        coll.push_back(s); 
...
6.6K
20 апреля 2008 года
Ordos
105 / / 02.11.2007
к сожалению оба варианта не работают, они оба зацикливаются.
320
20 апреля 2008 года
m_Valery
1.0K / / 08.01.2007
Цитата: Ordos
к сожалению оба варианта не работают, они оба зацикливаются.



Ввёл строку,нажал Enter и потом Ctrl+Z,всё работает.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог