![]() |
|
Модераторы: bsa |
![]()
|
|
| GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 6 Всего: 26 |
надо вывести содержимое буфера char*buf (или std::vector<char>) в стандартный вывод в виде
есть какойнибудь стандартный метод, или этот велосипед надо самому писать? Это сообщение отредактировал(а) GoldFinch - 22.5.2009, 15:15 |
|||
|
||||
| zim22 |
|
|||
|
depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 29 Всего: 69 |
||||
|
||||
| GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 6 Всего: 26 |
а жаль
|
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 52 Всего: 211 |
пусть будет здесь, мало ли кому еще понадобится Это сообщение отредактировал(а) azesmcar - 22.5.2009, 20:04 |
|||
|
||||
| GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 6 Всего: 26 |
как в cout вывести байт как число?
|
|||
|
||||
| GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 6 Всего: 26 |
cout<<static_cast<int>(x); помогло
|
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
на многих компилятор char по умолчанию signed; поэтому простое преобразование в int даст отрицательное значение "для половины чаров", поэтому Вам мне кажется больше подойдет двойное преобразование:
Это сообщение отредактировал(а) mes - 22.5.2009, 21:33 |
|||
|
||||
| andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 10 Всего: 33 |
Ты и вправду веришь что кто-то пользуется поиском? -------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
а я например не верю, что никто не пользуется, сам например зачастую пользуюсь, не смотря на то, что не всегда получается удачно найти требуемое. Это сообщение отредактировал(а) mes - 22.5.2009, 22:50 |
|||
|
||||
| Rififi |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1254 Регистрация: 9.3.2008 Репутация: 3 Всего: 36 |
надо вывести голую женщину на десктоп.
есть какойнибудь стандартный метод, или этот велосипед надо самому писать? |
|||
|
||||
| GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 6 Всего: 26 |
Rififi, ты несогласен с тем, что это велосипед?
|
|||
|
||||
| GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 6 Всего: 26 |
набросал кодес, нужна критика
без "#define _SECURE_SCL 0" почемуто не работает Это сообщение отредактировал(а) GoldFinch - 23.5.2009, 01:36 |
|||
|
||||
| andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 10 Всего: 33 |
-------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
| azesmcar |
|
||||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 52 Всего: 211 |
GoldFinch
этот флаг убирает проверку на валидность итераторов. Так оставлять нельзя. в принципе критики много, писать все лень, так что выложу немного измененный код, найди отличия
в логику не вдавался, но вылетает тут
видимо тут итератор переходит рамки вектора. посмотри дебагером. Это сообщение отредактировал(а) azesmcar - 23.5.2009, 09:19 |
||||
|
|||||
| GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 6 Всего: 26 |
azesmcar, из отличий нашел только пару ошибок, смену стиля форматирования кода, и зачем-то убранный шаблон
и мне совсем непонятно чем //backup flags std::ios_base::fmtflags backup = out.flags(); лучше переменной savedFlags и зачем using namespace std; выкинут в начало файла, если не факт что он там нужен andrew_121, это какбэ "нулевое (начальное) значение счетчика i" Это сообщение отредактировал(а) GoldFinch - 23.5.2009, 11:56 |
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 52 Всего: 211 |
1. Убрал шаблон..а зачем он нужен?
2. Убрал Buf::const_iterator j; из цикла (каждый раз заново создается) 3. вызовы типа std::cout << ":" << " "; заменил на std::cout << ": "; 4. исправил стиль форматирования - чтобы читалось легче Добавлено через 54 секунды
да ничем )) просто переписывая переименовал автоматом..внимание не обратил |
|||
|
||||
| GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 6 Всего: 26 |
а вылетает оно при вычислении i + 8 и i + 16
полученное значение проверяется на выход за end() и прога вылетает
и как от этого избавиться? |
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 52 Всего: 211 |
||||
|
||||
| GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 6 Всего: 26 |
azesmcar, вызов std::cout << ":" << " "; там был специально, т.к. в предыдущей строке задется выравнивание для 1 символа, а не для 2х
а шаблон чтобы можно было бы юникод юзать, при необходимости Добавлено через 8 минут azesmcar, а я не выхожу за рамки вектора, я сравниваю итераторы за границами вектора, но не разыменовываю их замена (j<i+8 && j<e) на (j<e && j<i+8) не помогла , как это ни странно %) Добавлено через 12 минут и 21 секунду я может дико туплю, но как сравнить i с e и i с i+8 не вычисляя i+8 ?? |
|||
|
||||
| GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 6 Всего: 26 |
видимо кроме итераторов в циклы надо ввести дополнительный счетчик k исключительно для "безопасного" вычисления k+8
спрашивается нафига тогда итераторы, если заменив их на указатели эта проблема пропадет %) |
|||
|
||||
| mes |
|
||||||||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
как я понял, ошибка в понимании работы итератора end ()
для проверки, Вы не должны итератором выходить за пределы [begin(), end()], a следовательно проверка
не валидна. Вместо нее пользуйте проверку по инверсионому условию, т.е проверяете не выход итератора далеко за пределы, а сколько ему еще можно валидно расти.
P.S. хотя мне код с предыдущей страницы не нравится не только этим.. Это сообщение отредактировал(а) mes - 23.5.2009, 15:17 |
||||||||
|
|||||||||
| GoldFinch |
|
||||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 6 Всего: 26 |
mes, спасибо, "e-i>8" помогло,
зато теперь валится на
если заменить "i+8-j" на "i-j+8" то на этой строчке падать не будет (забавный контрпример неопределенности порядка вычисления) а чем еще не нравится тот код? Добавлено через 13 минут и 52 секунды вроде все ошибки убил. получился такой код:
что кстати оптимальнее, out<<'+' или out<<"+" ? |
||||
|
|||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
предлагаю альтернативный вариант для доработки:
интуитивно полагаю что на вывод символа меньше затрат, хотя не думаю, что этим вопросом стоит озадачиваться. Это сообщение отредактировал(а) mes - 23.5.2009, 15:14 |
|||
|
||||
| GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 6 Всего: 26 |
mes, действительно, так лучше, спасибо
|
|||
|
||||
![]()
|
| Правила форума "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. |