|
82 / 1 / 0
Регистрация: 08.10.2012
Сообщений: 54
|
|
Наследование от ofstream и перегрузка <<14.07.2015, 14:36. Показов 6477. Ответов 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 формате? перегрузка и наследование.
Наследование и перегрузка <<
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Из невошедшего на форум (диалог с ИИ-гугла)
zorxor 29.07.2026
А вот, что интересно, сказал мне ИИ-гугла:
Этот текст — эмоциональный пост пользователя под ником zorxor на интернет-форуме (вероятно, посвященном мистике, непознанному или альтернативной науке). . . .
|
Был праздник вчера, а я и не знал.
kumehtar 28.07.2026
27. 07. 2026г. Intel Core 2 Duo исполнилось 20 лет
Новости компьютерного мира и их обсуждение (4)
Салют, шампанское, овации!
:drink:
|
Нейтральные знания, чистый код - бла-бла-бла-бла, на самом деле кликбейт и самореклама, плагиат, и вот почему
Hrethgir 27.07.2026
То-есть отклонение такой публикации говорит само за себя, и пусть только возьмут на вооружение после отклонения публикации - это будет чистейшим актом плагиата. Отклонял Хабр.
Дословно, отклонённая. . .
|
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы
Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
|
|
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
|
Очистка реквизитов и табличных частей документа при копировании (вариант 2)
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2.
Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
|
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
|
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
|