![]() |
|
Модераторы: Poseidon |
![]()
|
|
| WEM |
|
||||||
|
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 17.12.2007 Репутация: нет Всего: нет |
Написать программу, печатающую символы. В строку выводится номер, символ, шестнадцатеричный и восьмеричный код.
Вот несколько моих вариантов, но что странно, то, что до восьми все символы и коды выводятся нормально, а после 8 - в каком-то непонятном порядке: 1.
2.
3.
|
||||||
|
|||||||
| Optimus |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 186 Регистрация: 1.9.2007 Репутация: 9 Всего: 14 |
Если не поставить dec то после первой итерации цикла, cout будет использовать oct --------------------
"постановка задачи наполовину решает саму задачу" |
|||
|
||||
| WEM |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 17.12.2007 Репутация: нет Всего: нет |
dec-это в десятичной системе, так?
А как это может повлиять на вывод? Проблема в том, что после i=8, начинается беспорядок в выводе. Я не могу понять, с чем это связано... |
|||
|
||||
| Optimus |
|
||||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 186 Регистрация: 1.9.2007 Репутация: 9 Всего: 14 |
Да.
Это происходит потому что после первой итерации цикла, первый cout
использует флаг oct Давайте разберем ваш вывод в цикле:
--------------------
"постановка задачи наполовину решает саму задачу" |
||||||
|
|||||||
| WEM |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 17.12.2007 Репутация: нет Всего: нет |
Ок, спасибо! Это теперь понятно
Но только все равно, после i = 8, они выводятся странно, не могу понять почему теперь так, вот код:
|
|||
|
||||
| Optimus |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 186 Регистрация: 1.9.2007 Репутация: 9 Всего: 14 |
Здесь вы выводите символы, но не надо забывать что есть символы, например '\n', которые отображаются как управляющие последовательность, а не как символ. Думаю поэтому и искажается вывод, ведь если убрать эту строку то вывод будет нормальным. --------------------
"постановка задачи наполовину решает саму задачу" |
|||
|
||||
| WEM |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 17.12.2007 Репутация: нет Всего: нет |
Ага, понятно. А как тогда иначе можно вывести символы?
Первое, что приходит в голову что можно написать вместо (char)i - это завести массив с символами...Но это слишком долго и тупо |
|||
|
||||
| opjox |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 90 Регистрация: 17.1.2008 Репутация: 11 Всего: 14 |
Так вы и выводите символы, но только символы с кодами (в вашем случае) от 0 до 10.
Думаю, выполнив этот код и просмотрев его и его результаты, ситуация для вас чуть прояснится:
P.S. в результате до знака равно вы получити код символа, а после – его символьное представление. И при разборе результата не забудьте, что символ с кодом 10 есть '\n' и он заставит пропустить еще одну строку. |
|||
|
||||
| WEM |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 17.12.2007 Репутация: нет Всего: нет |
Ок, все понятно, спасибо!
Мне вобще нужно было вывести все 256 символа, но проблемы возникали на том моменте, когда i==8 || i == 9 || i == 10 || i == 13. Поэтому для них просто можно сделать отдельный вывод:
Это сообщение отредактировал(а) WEM - 21.2.2008, 16:33 |
|||
|
||||
![]()
|
| Правила форума "Центр помощи" | |
|
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Центр помощи | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |