![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
anatox91 |
|
|||
![]() программист-самоучка ![]() ![]() Профиль Группа: Участник Сообщений: 699 Регистрация: 12.1.2008 Где: ++Украина.Крым++ Репутация: 1 Всего: 13 |
а почему не работает пример opjox'a можете подсказать? вроде разобрался в его примере и по-моему все должно работать... но не работает...
-------------------- The code is the design © Sony VAIO VGN-FW480J ![]() |
|||
|
||||
opjox |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 90 Регистрация: 17.1.2008 Репутация: 2 Всего: 14 |
'\0' – подчеркнет тип, но, имхо, для глаза 0 приятнее выглядит. На нижнем уровне присвоение будет выполнено одинаково.
Засада сидит в строчке:
если код собран с помощью g++, то для потока std::cin функция in_avail упорно возвращает 0, даже несмотря на то, что в буфере есть данные. Причем, на VS2008 код работает на ура. Чтобы все заработало, надо в len занести кол-ва данных в буфере. Или же модифицировать механизм поиска разделителя. Сейчас будет хоккей ![]() |
||||
|
|||||
anatox91 |
|
|||
![]() программист-самоучка ![]() ![]() Профиль Группа: Участник Сообщений: 699 Регистрация: 12.1.2008 Где: ++Украина.Крым++ Репутация: 1 Всего: 13 |
попробовал, действительно на визуалке все фурычит, а на MinGW не хочет...
opjox, спасибо кстати, очень интересные функции узнал, + -------------------- The code is the design © Sony VAIO VGN-FW480J ![]() |
|||
|
||||
opjox |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 90 Регистрация: 17.1.2008 Репутация: 2 Всего: 14 |
В силу обстоятельств
![]() Решить проблему так и не смог. Попробовал найти замену in_avail(), но тщетно. Потом решил пойти другим путем – пройтись по всему буферу до разделителя или до окончания данных. Тут уже все пошло лучше и даже удалось написать рабочий код для VS2008:
Но у этого кода есть проблема: если мы достигнем не разделителя, а конца данных, то тогда происходит сброс всего буфера, из-за чего все данные в нем теряются. Но для g++ оказалось всю намного хуже и без этого. Функция sungetc отрабатывала всего один раз, а остальные вызовы игнорировались. Из-за этого не удается достич начала данных. Похоже, придется отказаться от этого варианта, не вижу я пока больше способов решения проблем этого пути. |
|||
|
||||
baldina |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 15 Всего: 101 |
Что-то кажется мне с getline() попроще будет. Пусть даже и с неоднократным выделением памяти: производительность тут имхо не слишком важна ибо
|
||||
|
|||||
anatox91 |
|
|||
![]() программист-самоучка ![]() ![]() Профиль Группа: Участник Сообщений: 699 Регистрация: 12.1.2008 Где: ++Украина.Крым++ Репутация: 1 Всего: 13 |
всем спасибо, решил все-таки через string пусть будет
![]() хотя конечно странно что пример opjox'а не работает в MinGW, но в VS2008 работает... -------------------- The code is the design © Sony VAIO VGN-FW480J ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |