powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Проблема с уничтожающимся потоком
7 сообщений из 7, страница 1 из 1
Проблема с уничтожающимся потоком
    #34498062
DarkPhoenix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что есть:
Есть программа. В ней перегрузка оператора ввода (получает ifstream и возвращает ifstream) с довольно-таки муторной обработкой текста (для чего пришлось перегонять поток в string). После обработки я с чистой совестью хотел сделать ifstream.putback()'ом впхнуть это обратно, но не тут-то было...
Файл на вход читается до конца; после чего весь поток отдается на растерзание обработчику (который поедает весь этот поток целиком).
Код:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
ifstream& operator >> (ifstream& fin, TEXT& text)
{
	SENTENCE sentence;
	//Тот самый метод обработки - название с виду простое :) обрабатывает посимвольно через while (!fin.eof()) { ... }
	text.widthtruncate(fin);

	//Это по дее должно писать элементы строки (прайм) обратно в поток, которого на деле не существует
	for (int i=(int)text.prime.size()-1;i>=0;i--)
	{
		fin.putback(ah.at(i));
	}

	//Передача далее по инстанциям
	while (!fin.eof())
	{
		fin >> sentence;
		text.body.push_back(sentence);
	}
	return fin;
}


Проблема в том, что судя по всему поток уничтожается с чтением EOF. Возможно ли как-нибудь засечь EOF до считывания еофа и уничтожения потока?
Или как-нибудь предотвратить его уничтожение?
Или проще создать новый поток и писать содержимое строки уже в него, и его же передавать далее?
Если последнее - подскажите плиз, как именно создается поток и в него пишется строка без необходимости создания файла. Буду премного благодарен...
...
Рейтинг: 0 / 0
Проблема с уничтожающимся потоком
    #34498173
grieg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор, ничего не понятно.
зачем ты хочешь запихать обратно в поток то, что оттуда уже считал?
если ты это уже считал в строчку, работай с этой строчкой.
...
Рейтинг: 0 / 0
Проблема с уничтожающимся потоком
    #34498281
Фотография blinded
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В ifstream putback'ом можно вернуть только один символ, - только что прочитанный
...
Рейтинг: 0 / 0
Проблема с уничтожающимся потоком
    #34498311
Фотография blinded
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Немножко лоханулся.Всеу что можно воостановить, вернуть назад в поток расположено межде началом буфера ввода и текущей позицией в нем. На большее расчитывать нельзя. Если поток не буферизован то можно расчитывать только на один символ.
...
Рейтинг: 0 / 0
Проблема с уничтожающимся потоком
    #34499616
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkPhoenix пишет:

> Проблема в том, что судя по всему поток уничтожается с чтением EOF.

Поток не уничтожается. Он переходит в состояние "конец данных".
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Проблема с уничтожающимся потоком
    #34499684
Фотография blinded
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати eofbit можно снять - вызвать метод clear(ios::eof_bit)
...
Рейтинг: 0 / 0
Проблема с уничтожающимся потоком
    #34499863
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
<sstream>
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Проблема с уничтожающимся потоком
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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