Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
Эксперт по математике/физикеЭксперт С++
 Аватар для Ilot
2226 / 1428 / 420
Регистрация: 16.05.2013
Сообщений: 3,654
Записей в блоге: 6

Признак окончания потока для буферного итератора

11.04.2014, 13:44. Показов 3083. Ответов 25
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Собственно надоело вводить ctrl+z для ввода признака окончания потока, засим возник вопрос а возможно ли изменить этот самый признак для буферного итератора?
Взглянул на заголовочники - узрел эти конструкторы:
C++
1
2
3
4
5
6
7
8
9
10
11
      ///  Construct end of input stream iterator.
      istreambuf_iterator() throw()
      : _M_sbuf(0), _M_c(traits_type::eof()) { }
 
      ///  Construct start of input stream iterator.
      istreambuf_iterator(istream_type& __s) throw()
      : _M_sbuf(__s.rdbuf()), _M_c(traits_type::eof()) { }
 
      ///  Construct start of streambuf iterator.
      istreambuf_iterator(streambuf_type* __s) throw()
      : _M_sbuf(__s), _M_c(traits_type::eof()) { }
Таким образом получается необходимо что бы traits_type::eof() возвращало к примеру '\n' и что бы все это работало со стандартными потоками. Как бы это сделать?
(traits_type это шаблон char_traits)

Добавлено через 2 часа 10 минут
Неужели задача такая сложная?
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.04.2014, 13:44
Ответы с готовыми решениями:

Не работает признак окончания ввода(признак-0)
Признак окончания ввода 0; подскажите люди добрые что не так?) #include <iostream> #include<stdio.h> using namespace std; int...

Можно ли задать ограничения для итератора потока ввода?
Изучая c++, наткнулся на такой способ заполнения вектора из потока. istream_iterator< int > input(cin); istream_iterator< int...

Бинарные файлы. Признак окончания файла
Здравствуйте Возникла проблема при чтении с бинарного файла, программа не может найти конец файла (точнее я не могу :jokingly:)...

25
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
14.04.2014, 15:35
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Ilot Посмотреть сообщение
Вообще-то достаточно просто перегрузить констукторы.
Где?

Добавлено через 4 минуты
Цитата Сообщение от alsav22 Посмотреть сообщение
ios_base::sync_with_stdio
Эта штука синхронизирует потоки стандартной библиотеки С++ и С. В каком порядке вызываются запись или чтение через них, в таком и будут производиться операции, если синхронизации нет, то потоки С и С++ могут (но не должны) работать независимо.
1
Эксперт по математике/физикеЭксперт С++
 Аватар для Ilot
2226 / 1428 / 420
Регистрация: 16.05.2013
Сообщений: 3,654
Записей в блоге: 6
14.04.2014, 15:44  [ТС]
Цитата Сообщение от DrOffset Посмотреть сообщение
Где?
Ага поспешил...
Цитата Сообщение от DrOffset Посмотреть сообщение
Эта штука синхронизирует потоки стандартной библиотеки С++ и С. В каком порядке вызываются запись или чтение через них, в таком и будут производиться операции, если синхронизации нет, то потоки С и С++ могут (но не должны) работать независимо.
Это я уже нагуглил. Вопрос в том какое отношение эта хрень имеет к буферным итераторам? Пока, что я search...
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
14.04.2014, 15:53
Цитата Сообщение от Ilot Посмотреть сообщение
Вопрос в том какое отношение эта хрень имеет к буферным итераторам?
Интересно, что если эту строчку поместить после объявления итератора, то ввод зависает.
0
Эксперт по математике/физикеЭксперт С++
 Аватар для Ilot
2226 / 1428 / 420
Регистрация: 16.05.2013
Сообщений: 3,654
Записей в блоге: 6
14.04.2014, 16:20  [ТС]
Цитата Сообщение от alsav22 Посмотреть сообщение
Интересно, что если эту строчку поместить после объявления итератора, то ввод зависает.
Может быть поэтому:
Вызвав функцию sync_with_stdio(), можно безопасно использовать стандартную С-подобную систему ввода-вывода в согласии с опирающейся на классы системой ввода-вывода C++. Чтобы отключить синхронизацию, передайте функции sync_with_stdio() значение false. Функция возвращает предыдущую установку: значение true означает синхронизацию, а значение false — ее отсутствие. По умолчанию стандартные потоки синхронизированы. Эта функция достоверна только в случае, если она вызывается до выполнения любых других операций ввода-вывода.
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
14.04.2014, 17:57
Цитата Сообщение от Ilot Посмотреть сообщение
до выполнения
А где там начинается выполнение?
0
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
14.04.2014, 17:59
Цитата Сообщение от alsav22 Посмотреть сообщение
А где там начинается выполнение?
Ну посмотри хотя бы на мой вариант итератора. Он идентичен стандартному за исключением символа eof.
C++
1
2
3
endline_iterator(istream_type & s) throw()
     : sbuf(s.rdbuf()), c(eof_value())
{ }
rdbuf() видишь?
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.04.2014, 17:59

С клавиатуры вводятся последовательность целых чисел.0 - признак окончания последовательности
С клавиатуры вводятся последовательность целых чисел.0 - признак окончания последовательности.Определить,верно ли утверждение : в...

С клавиатуры вводятся последовательность целых чисел 0 - признак окончания последовательности
определит ьверно ли утверждение количество нечетных чисел последовательности меньше количества четных... ноль не учитывается

Прочитать строку с клавиатуры (признак окончания строки – нажатие Enter)
Прочитать строку с клавиатуры (признак окончания строки – нажатие Enter) и добавить его в другой, созданный ранее текстовый файл с данными.

Пользователь вводит любые числа с клааиатуры,признак окончания 0. Проверить если в данной последовательности 5
Пользователь вводит любые числа с клавиатуры признак окончания 0, Проверить,если в данной последовательности число 5 если да то заменить...

Ввод пользователем заранее НЕ известного количества чисел(выбрать признак окончания ввода-число 999)
Ввод пользователя заранее НЕ известного количества чисел(выбрать признак окончания ввода-число 999) с определением среди введенных чисел...


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

Или воспользуйтесь поиском по форуму:
26
Ответ Создать тему
Новые блоги и статьи
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru