|
82 / 1 / 0
Регистрация: 08.10.2012
Сообщений: 54
|
|
Наследование от ofstream и перегрузка <<14.07.2015, 14:36. Показов 6462. Ответов 70
Метки нет (Все метки)
Добрый день, гуглил на английском языке, но ответа не попалось. Предыстория: некий объекта принимает в качестве параметра ссылку на ostream, куда подсовывается ofstream. Задача в том, что перед действием << требуется сделать дополнительные телодвижения, а точнее обработать данные, которые направляются на выход. Я вижу решение таким, что нужно наследоваться от ofstream и переопределить <<. как это правильно делается нагуглить не удалось. Буду рад приведенным примерам или ссылкам на статьи об этом. Спасибо.
0
|
|
| 14.07.2015, 14:36 | |
|
Ответы с готовыми решениями:
70
Перегрузка ofstream, istream Перегрузка ofstream / ifstream для классов |
|
Модератор
3410 / 2182 / 354
Регистрация: 13.01.2012
Сообщений: 8,469
|
|||||||
| 15.07.2015, 12:30 | |||||||
Сообщение было отмечено VVildVVolf как решение
Решение
пожалуй лучшая ссылка на эту тему из тех которые я перелопатил http://www.mr-edd.co.uk/blog/b... _streambuf Добавлено через 3 минуты тут тоже есть кое-что http://stdcxx.apache.org/doc/s... .html#3832 http://stdcxx.apache.org/doc/stdlibug/39-2.html http://stdcxx.apache.org/doc/stdlibug/39-3.html но все вокруг да около и не в те ворота (у меня нифига не заработало), но может кто-то что-то найдет
3
|
|||||||
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
||||||
| 15.07.2015, 13:23 | ||||||
|
vxg, А вот за это спасибо. Про init я как-то не знал. Да и вообще статьи интересные.
Пример работы
3
|
||||||
|
82 / 1 / 0
Регистрация: 08.10.2012
Сообщений: 54
|
|
| 15.07.2015, 14:11 [ТС] | |
|
Вот, красота! Благодарен за помощь, если увижу в личке номера телефонов вас обоих - немного пополню баланс
![]() п.с. отсутствие виртуальности где хотелось бы, конечно, удручает((( похоже пора срочно отвыкать от Java-подобного... или же наоборот никогда его от себя не отпускать...
0
|
|
|
Модератор
3410 / 2182 / 354
Регистрация: 13.01.2012
Сообщений: 8,469
|
|||
| 15.07.2015, 14:33 | |||
|
0
|
|||
|
82 / 1 / 0
Регистрация: 08.10.2012
Сообщений: 54
|
|
| 15.07.2015, 14:46 [ТС] | |
|
Ну как в Java, где практически любой метод можно переопределить (если он явно от этого не защищен). Но возможно это негодование только от незнания специфики языка
Добавлено через 7 минут Кстати, теперь можно прокидывать для вывода другой ostream и делать многоступенчатую обработку =D
0
|
|
|
Модератор
3410 / 2182 / 354
Регистрация: 13.01.2012
Сообщений: 8,469
|
||
| 15.07.2015, 14:50 | ||
|
Добавлено через 1 минуту спасибо за мотивацию!
0
|
||
|
82 / 1 / 0
Регистрация: 08.10.2012
Сообщений: 54
|
|
| 15.07.2015, 14:52 [ТС] | |
|
Вот я и говорю, что надеюсь, что в плюсах сделать можно всё (пусть и неочевидным с первого раза) красивым и объектно-ориентированным способом))
на здоровье, мне не жалко за дело) надеюсь что таки меня возьмут на работу с вашей помощью ..
0
|
|
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
||
| 15.07.2015, 14:57 | ||
|
0
|
||
|
82 / 1 / 0
Регистрация: 08.10.2012
Сообщений: 54
|
|
| 20.07.2015, 09:58 [ТС] | |
|
Привет всем снова, тут проблема возникла, при передачи в CustomStreamBuf ссылки на ostream. Передаю туда cout - всё норм, всё выводит на консоль, передаю туда ofstream - пустой файл получаю... из-за чего такое может быть?
и заодно ещё почему-то файл не хочет создаваться вообще, если прописать вместо "out.txt" что-нить типа "/output/out.txt", т.е. во вложенной папке. где-то на этом форуме была тема про такое создание выходного поток, народ пишет что файл должен создаваться во вложенной папке... у меня не создаётся, даже если эту папку сам создам...
0
|
|
|
Модератор
3410 / 2182 / 354
Регистрация: 13.01.2012
Сообщений: 8,469
|
|||||||
| 20.07.2015, 12:30 | |||||||
0
|
|||||||
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
||||||||||||
| 20.07.2015, 12:41 | ||||||||||||
|
Мой код тот же, кроме fstream:
2
|
||||||||||||
|
Модератор
3410 / 2182 / 354
Регистрация: 13.01.2012
Сообщений: 8,469
|
||
| 20.07.2015, 13:07 | ||
|
0
|
||
|
82 / 1 / 0
Регистрация: 08.10.2012
Сообщений: 54
|
|
| 20.07.2015, 13:12 [ТС] | |
|
на самом деле синк в моём конкретно случае мало волнует (не бейте меня, я его в деструкторе стрима вызываю...), и получается endl и '\n' не одно и тоже? попробую в конце принудительно заталкивать endl для верности... но при указании папки - так ничего не создаётся, ни на домашнем ноуте, ни на рабочей машинке, даже при запуске с правами админа...
0
|
|
|
Модератор
3410 / 2182 / 354
Регистрация: 13.01.2012
Сообщений: 8,469
|
||
| 20.07.2015, 13:45 | ||
|
0
|
||
|
82 / 1 / 0
Регистрация: 08.10.2012
Сообщений: 54
|
|||||||
| 20.07.2015, 13:52 [ТС] | |||||||
на 2х машинах причем файл не создаётся, и со слэшем, и без, и с "~/" и с "./" и всё тоже самое с обратными слэшами пробовал..причем (если файл создаётся в той же папке, что и прога) такой код:
begin end
0
|
|||||||
|
Модератор
3410 / 2182 / 354
Регистрация: 13.01.2012
Сообщений: 8,469
|
||
| 20.07.2015, 14:03 | ||
|
0
|
||
|
82 / 1 / 0
Регистрация: 08.10.2012
Сообщений: 54
|
|||||||
| 20.07.2015, 14:15 [ТС] | |||||||
|
Добавлено через 8 минут
0
|
|||||||
| 20.07.2015, 14:21 | |
|
0
|
|
|
Модератор
3410 / 2182 / 354
Регистрация: 13.01.2012
Сообщений: 8,469
|
||
| 20.07.2015, 14:24 | ||
|
Добавлено через 50 секунд полагаю что то с правами или хз чем но не с программой. что то мне подсказывает что вам нужно попробовать порабоать в винде
0
|
||
|
82 / 1 / 0
Регистрация: 08.10.2012
Сообщений: 54
|
|||
| 20.07.2015, 14:30 [ТС] | |||
|
Добавлено через 55 секунд ![]() Добавлено через 2 минуты да и если б была проблема с правами,тогда б и в своей директории не разрешал создавать? я ведь и из-под диска C с правами админа запускал...
0
|
|||
| 20.07.2015, 14:30 | |
|
Перегрузка ifstream и ofstream для работы с файлами в little-endian формате? перегрузка и наследование.
Наследование и перегрузка <<
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Запрет пометки на удаление и отмены проведения
Maks 16.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "ПутевойЛист" разработанного в КА2.
Задача: запретить помечать на удаление и отменять проведения путевого листа при условии, если он сдан. . .
|
Как надо было делать правильно - вообще не слушать ИИ, его дело - текст.
Hrethgir 16.07.2026
А вообще надо было делать не так, чтобы не исправлять ошибку https:/ / www. cyberforum. ru/ blogs/ 223907/ 10996. html , правильно было : удалил кнопку, а потом добавил её.
Всё это стресс конечно. Почему?. . .
|
Знаете, от чего появляется стресс?
kumehtar 15.07.2026
Стресс появляется оттого, что вы, зная как поступить правильно, делаете наоборот.
Ларри Уингет
|
Нас бьют, а мы крепчаем? Какая чушь!
kumehtar 15.07.2026
Вот это вот бытующее мнение, что человек меняется только под действием проблем, всегда считал вредоносным. Поверь, от проблем у людей появляются не изменения, а нервное расстройство и ПТСР. А. . .
|
|
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров
В текущей версии модели успешно реализован ключевой механизм. . .
|
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям
Реализованные компоненты:
Механизм закисления почвы через протонную помпу
Конкуренция между типами микориз
pH как триггер сукцессии
C/ P соотношение. . .
|
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
|
Решил проблему с ошибкой пагинации сообщений с сервера на алгоритме обхода дерева "Эстафета хвоста".
Hrethgir 12.07.2026
Проблема была в том, что удалялась именно новая кнопка, а не старая. Ни один ИИ не обнаружил это, а сам я смог только когда с работой стало попроще и когда заставил работать будущее автономное. . .
|