string s;
while(true)
{
cin >> s;
}
Работа с потоком cin.
Код:
если при первом проходе цикла ввести "1 2 3 4 5" (все цыфры разелены пробелом), то в s считается "1", а при последующих четырёх проходах цикла ввоить ничего не нужно будет, в s будет заноситься следующее "слово", те "2", "3", итд. на шестом цикле программа снова предложит ввести новую строку.
Как отслеить ситуацию, когда больше нельзя автоматом брать из потока значения?
Я хочу введёную строку разбить на слова и отельно их поместить в коллекцию, причём именно через потоки.
Код:
...
istream_iterator<string> iter(cin);
vector<string> coll(iter,istream_iterator<string>());
...
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);
...
string s;
vector<string> coll;
while(getline(cin,s,' '))
coll.push_back(s);
...
к сожалению оба варианта не работают, они оба зацикливаются.
Цитата: Ordos
к сожалению оба варианта не работают, они оба зацикливаются.
Ввёл строку,нажал Enter и потом Ctrl+Z,всё работает.