Форум программистов, компьютерный форум, киберфорум
Наши страницы

C++

Войти
Регистрация
Восстановить пароль
 
BESSON_off
3 / 0 / 1
Регистрация: 08.07.2013
Сообщений: 351
#1

Зачем придумали istreambuf/ostreambuf? - C++

07.02.2014, 16:48. Просмотров 406. Ответов 7
Метки нет (Все метки)

Уважаемые форумчане, мне очень хочется понять для каких целей создали istreambuf_iterator и ostreambuf_iterator.
Все, что делает istreambuf_iterator - достает, посимвольно, элементы из буфера ввода.
Все, что делает ostreambuf_iterator - выводит, посимвольно, элементы.
Единственное применение для этого (которое я представляю себе) это копирование из одного файла в другой всех элементов.

Объясните пожалуйста - для чего же на самом деле нужны эти два итератора? (можно парочку полезных примеров для самостоятельной мозговой деятельности).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.02.2014, 16:48
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Зачем придумали istreambuf/ostreambuf? (C++):

Зачем очищать поток cout? - C++
Всем привет! Не могу понять, зачем очищать поток cout после вывода? Все, что выудил из гугла, что вроде как поток сохраняет в себе...

Объясните пожалуйста зачем нужна структура класса iterator_traits. - C++
Всем привет! Объясните пожалуйста зачем нужна структура класса iterator_traits. Ведь все тайпдефы, которые содержатся в этой структуре...

Зачем? - C++ Builder
Зачем программировать на Builder? Что бы поддерживать старые приложения?

Зачем писать randomize() - C++ Builder
Зачем писать randomize(); Если функция (random(21)-10) работает и без этой строки, зачем это вообще надо?

Зачем изучать в институте С++ Builder? - C++ Builder
Зачем изучать в институте С++ Builder?

Зачем нужен файл Project1PCH1.h - C++ Builder
Приветствую. В общем, вопрос в заголовке. Этот файл включен в проект при его создании в C++Builder 10.1. Имя по умолчанию. Я его всегда...

7
Dmitriy_M
1360 / 1243 / 114
Регистрация: 20.03.2009
Сообщений: 4,449
Записей в блоге: 11
07.02.2014, 18:38 #2
BESSON_off, научись пользоваться гуглом
http://www.cplusplus.com/reference/iterator/istreambuf_iterator/
http://www.cplusplus.com/reference/iterator/ostreambuf_iterator/
0
BESSON_off
3 / 0 / 1
Регистрация: 08.07.2013
Сообщений: 351
07.02.2014, 20:40  [ТС] #3
Цитата Сообщение от Dmitriy_M Посмотреть сообщение
научись пользоваться гуглом
Я иитераторы изучил перед тем как вопрос задать. И искал я не их определение а идею их эффективного использования. Не накидывай спама в тему, а дай пару нормальных примеров использования.
0
Dmitriy_M
1360 / 1243 / 114
Регистрация: 20.03.2009
Сообщений: 4,449
Записей в блоге: 11
07.02.2014, 21:08 #4
BESSON_off, там примеры приведены. К примеру для элегантного чтения.
0
BESSON_off
3 / 0 / 1
Регистрация: 08.07.2013
Сообщений: 351
08.02.2014, 18:58  [ТС] #5
Просто странно, есть же более солидные аналоги типа istream/ostream_iterator со своими производными, которые помимо того, что могут быть символьными (как istreambuf/ostreambuf) но и строковыми и т.п.
0
Dmitriy_M
1360 / 1243 / 114
Регистрация: 20.03.2009
Сообщений: 4,449
Записей в блоге: 11
08.02.2014, 22:35 #6
BESSON_off, да, но они не работают с буфером.
0
BESSON_off
3 / 0 / 1
Регистрация: 08.07.2013
Сообщений: 351
19.02.2014, 19:39  [ТС] #7
Цитата Сообщение от Dmitriy_M Посмотреть сообщение
да, но они не работают с буфером
А для вас какая разница достаете ли вы символы через istream_iterator<char> или через istreambuf_iterator<char>. В обоих случаях вы получаете по символу каждую итерацию. В чем различаются получаемые символы?
0
Izual
94 / 119 / 6
Регистрация: 13.11.2012
Сообщений: 1,552
20.02.2014, 00:27 #8
Имхо конешно, но и fread обычной сишной функции читает.
Тебе наверно надо ключевую фразу "Разница istreambuf и чего то ещё".. хотя разницы врятли можно заметить, очень много функции С++ просто копируют Сишные, с маленькими добавочными алгоритмами, которые и самому написать можно...
0
20.02.2014, 00:27
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.02.2014, 00:27
Привет! Вот еще темы с ответами:

Combobox->AddItem зачем второй параметр? - C++ Builder
Доброго времени суток. Подскажите пожалуйста, в вызове метода Combobox-&gt;AddItem(&quot;text&quot;,?) для чего второй параметр нужен?

Зачем в MSVC дублируются типы данных? - C++ Builder
Вопрос из любопытства: в VisualC++ используется множество типов данных, которые просто дублируют базовые C-шные. И если появление...

Зачем нужен TTimer если есть sleep? - C++ Builder
Зачем нужен TTimer если есть sleep? Может я что-то не до конца понимаю. Всегда пользовался таймером для создания простых игр, например...

Зачем придумали C Sharp - C#
Я понимаю что это язык программирования созданный мелкософтом в 98, но зачем? Для каких целей его сделали? Поддержать .NET? Чем не хватало...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru