![]() |
|
Модераторы: bsa |
![]()
|
|
| Viroman |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 140 Регистрация: 28.7.2008 Репутация: нет Всего: нет |
Такое ощущение, будто бы вы компьютерный бот Ещё раз, внимание, 00 переводится не в 00, а в E0, в том коде, что дал мне bsa, спасибо ему, он молодец, хоть как то старался помочь.. |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
Как Вы догадались ? так объясните, при чем тут ошибка перевода, когда проблема у Вас была с выводом и bsa привел способ как справиться с этим. подставили бы свой код по преобразованию, а код вывода взали бы от bsa.. Вы вот так хотя бы попробовали ?
Это сообщение отредактировал(а) mes - 2.9.2008, 22:18 |
|||
|
||||
| Viroman |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 140 Регистрация: 28.7.2008 Репутация: нет Всего: нет |
Я новичок и только как неделю начал разбираться с c++, потому ещё не знаю, какую библиотеку надо включать, чтобы write работал.
А то пишет, что missing prototype for 'writе' |
|||
|
||||
| Viroman |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 140 Регистрация: 28.7.2008 Репутация: нет Всего: нет |
PS: применил fwrite(&c, 1, sizeof(&c), myfile); так работает оутпут, теперь надо поглядеть, что моя прога в самом деле выдаёт..
Добавлено через 6 минут и 57 секунд PPS: моя программа где то тоже сама портачит, и не хочет 00 писать, то есть как бы она игнорирует его.. Наверное функция concatenate не работает корректно, а именно подфункция либо strcat, либо strcpy.. |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
функции с си-строкой воспринимают масив символов до первого нуля, именно поэтому и предложил Вам использовать понятие буффер, вместо понятия си-строки для вашей цели, тогда сразу будет видно какие функции не подходят. ну если С++, а не С, то лучше использовать std::string , себе же легче.. Это сообщение отредактировал(а) mes - 3.9.2008, 00:38 |
|||
|
||||
| Viroman |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 140 Регистрация: 28.7.2008 Репутация: нет Всего: нет |
Мы идём тернистым путём, си так си |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
||||
|
||||
| Viroman |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 140 Регистрация: 28.7.2008 Репутация: нет Всего: нет |
В общем, я так и делал string.c_str(), нo толка ещё много не знаю, потому не знал, как сделать, в остальном разобрался уже. Мне код от bsa понравился, только там ошибочка небольшая, после исправления правильно подаёт.
Там где return (dig >= 'A') ? (dig - 'A' + 10) : (dig - '0'); исправить на return (dig >= 'A') ? (dig - 'A' + 10) : (dig - 16); На этом эпопея может считаться закрытой до худших времён :=) |
|||
|
||||
| mes |
|
||||||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
В примере bsa использовался хак для приведения символа к верхнему регистру. Дело в том что такой прием можно применять только к буквенным символам английского алфавита, на остальные символы он имет трудно предсказуемое воздействие. bsa явно указал в примере, что он дает направление , а не готовое решение и приведение кода в нормуперекладывает на Ваши плечи. Вы вместо того, чтоб ограничить воздействаие на нужный диапозон символов, пытаетесь лечить последствия. Такой метод программирования очень опасный, так как очень затрудняет читабельность кода и дает основание для появления трудно отлавливыемых ошибок. если уж не хотите добавлять проверок то хотя бы заменить на
вот другой вариант
и наконец полный вариант
не забудь тогда пометить тему как решенную Это сообщение отредактировал(а) mes - 3.9.2008, 13:50 |
||||||
|
|||||||
| Viroman |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 140 Регистрация: 28.7.2008 Репутация: нет Всего: нет |
Не вижу особой надобности вставлять защиты от дурака и гонять лишние процциклы. Если бы для коммерческого пользования, то да, а для себя я и так знаю, какие символы входят в разрешённые |
|||
|
||||
| bsa |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
Эх... знал, что меня этот & 0x5F когда-нибудь погубит... дождался
Надо заменить
на
|
||||
|
|||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
ну если Вам охота выполнять работу за компилятор и постояно при любых изменениях самостоятельно контроллировать правильность всех условий, то конечно продолжайте так писать. Однако мне кажется , что у программиста, и без того полно проблем, чтоб еще держать в голове каждую строчку кода. |
|||
|
||||
![]()
|
| Правила форума "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. |