|
82 / 1 / 0
Регистрация: 08.10.2012
Сообщений: 54
|
|
Наследование от ofstream и перегрузка <<14.07.2015, 14:36. Показов 6464. Ответов 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 18.07.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Вычислить периметр прямоугольника, заданного координатами своих вершин на плоскости.
Решение:
Создан документ со следующими. . .
|
Подсчёт частоты трёхбуквенных слов в тексте
Maks 18.07.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Выясните, сколько раз в предложенном тексте встречается каждое трехбуквенное слово.
Решение:
Создан документ с единственным. . .
|
Сумма и количество положительных элементов в чётных строках массива
Maks 18.07.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Вычислить сумму и количество положительных элементов массива, расположенных в четных строках.
Решение:
Создан документ с. . .
|
Поиск произведения положительных чётных чисел в последовательности
Maks 18.07.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Дана произвольная последовательность целых чисел. Найти произведение положительных четных чисел данной последовательности.
. . .
|
|
Обработка трёх чисел: утроение и возведение в степень
Maks 18.07.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Даны три действительных числа. Утроить те из них, значения которых неотрицательны, и возвести в четвертую степень отрицательные.
. . .
|
Расчёт стоимости яблок по весу
Maks 18.07.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Написать программу вычисления стоимости некоторого количества (по весу) яблок.
Решение:
Создан документ, с табличной частью. . .
|
сукцессия 30. Фосфорный и азотный замки по "честному" закону лимитирования Либиха
anaschu 16.07.2026
Основные достижения за последние дни
1. Механизм отложенного высвобождения фосфора
Добавлен специальный пул для медленного разложения меланизированных гиф ЕСМ
Реализована разная скорость. . .
|
Запрет пометки на удаление и отмены проведения
Maks 16.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "ПутевойЛист" разработанного в КА2.
Задача: запретить помечать на удаление и отменять проведения путевого листа при условии, если он сдан. . .
|