Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Использование stringstream / 3 сообщений из 3, страница 1 из 1
21.05.2014, 16:39
    #38647833
aybek_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование stringstream
Код:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
	float t;
	string s;
	stringstream ss;

	getline(cin, s);
	ss.str(s);

	while (ss >> t) {
		cout << t << endl;
	}

	getline(cin, s);
	ss.str(s);

	while (ss >> t) {
		cout << t << endl;
	}



На вход подается такой вот файл:
Код: plaintext
1.
2.
1.2 1.3 -2
1.2 5.6 -3


Первая строка правильно обрабатывается и на stdout выводятся три числа
первой строки.
Но вот вторая строка никак не обрабатывается, просто второй цикл while
сразу же завершается.

Проблема именно в функции str класса stringstream, т. к. строка вводится правильно.

Как можно это исправить?
...
Рейтинг: 0 / 0
21.05.2014, 17:28
    #38647900
Anatoly Moskovsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование stringstream
aybek_,

Вам надо, перед тем как повторно использовать поток, сбросить в нем флаги ошибок и конца файла.

Код: plaintext
1.
2.
3.
4.
...
ss.clear(); 
ss.str(s);
...
...
Рейтинг: 0 / 0
21.05.2014, 18:27
    #38647977
aybek_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование stringstream
Спасибо за быстрый ответ.
Надо лучше изучать С++!
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Использование stringstream / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]