| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Центр помощи > [C++]Вывести номер, символ, 16 и 8-чный код |
| Автор: WEM 17.2.2008, 13:38 | ||||||
| Написать программу, печатающую символы. В строку выводится номер, символ, шестнадцатеричный и восьмеричный код. Вот несколько моих вариантов, но что странно, то, что до восьми все символы и коды выводятся нормально, а после 8 - в каком-то непонятном порядке: 1.
2.
3.
|
| Автор: Optimus 17.2.2008, 18:58 | ||
Если не поставить dec то после первой итерации цикла, cout будет использовать oct |
| Автор: WEM 17.2.2008, 21:01 |
| dec-это в десятичной системе, так? А как это может повлиять на вывод? Проблема в том, что после i=8, начинается беспорядок в выводе. Я не могу понять, с чем это связано... |
| Автор: WEM 18.2.2008, 17:32 | ||
| Ок, спасибо! Это теперь понятно Но только все равно, после i = 8, они выводятся странно, не могу понять почему теперь так, вот код:
|
| Автор: Optimus 18.2.2008, 19:13 |
Здесь вы выводите символы, но не надо забывать что есть символы, например '\n', которые отображаются как управляющие последовательность, а не как символ. Думаю поэтому и искажается вывод, ведь если убрать эту строку то вывод будет нормальным. |
| Автор: WEM 18.2.2008, 20:43 |
| Ага, понятно. А как тогда иначе можно вывести символы? Первое, что приходит в голову что можно написать вместо (char)i - это завести массив с символами...Но это слишком долго и тупо |
| Автор: opjox 18.2.2008, 22:12 | ||
| Так вы и выводите символы, но только символы с кодами (в вашем случае) от 0 до 10. Думаю, выполнив этот код и просмотрев его и его результаты, ситуация для вас чуть прояснится:
P.S. в результате до знака равно вы получити код символа, а после – его символьное представление. И при разборе результата не забудьте, что символ с кодом 10 есть '\n' и он заставит пропустить еще одну строку. |
| Автор: WEM 21.2.2008, 16:30 | ||
| Ок, все понятно, спасибо! Мне вобще нужно было вывести все 256 символа, но проблемы возникали на том моменте, когда i==8 || i == 9 || i == 10 || i == 13. Поэтому для них просто можно сделать отдельный вывод:
|