Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вывод на печать символа ввода и его десятичное зна 
:(
    Опции темы
zamanov
Дата 8.4.2015, 14:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 8.4.2015

Репутация: нет
Всего: нет



Основной вопрос задачи - вывод непечатаемых символов (тех что меньше пробела в кодировке ASCII). 
Вот полный текст задачи: Напишите программу, которая считывает поток символов до момента обнаружения EOF. Программа выводит на печать каждый символ и его десятичный код. Если встречается непечатаемый символ новой строки или табуляции, печатается \n or \t. используйте запись, выполняемую с помощью управляющих символов.
Далее пишется Например ASCII 1 соответствует комбинации ctrl+A, что отображается как ^A, а код А - ctrl+A +64. Далее просится выводить по десять пар, но начинать с новой строки каждый раз если встречается символ новой строки.....
Меня завело в тупик вот это последнее пояснение.... решить эту задачу я смог методом исключения (для случая табуляции и новой строки).....но меня терзает мысль что я просто так и не понял правильно условие...
Подскажите как используется в данном примере условие замены ctrl+A

Вот мой код
Код

#include <stdio.h>
 
 
int main (void)
 
{      int ch;
       int i = 0;
 
       while ((ch = getchar()) != EOF)
            {     if (ch >= ' ')
                   {
 
                      i++;
                      putchar(ch);
                      printf("-%d,", ch);
                   }
                               else if (ch == '\n')
                               {
                                  printf("\\n");
                                  printf("-%d,", ch);
                                  printf("\n");
                                  i = 0; }
                                    else if (ch == '\t')
                                {
                                  printf("\\t");
                                  printf("-%d,", ch);
                                  i++;
 
                                 }
 
 
                  if (i == 10)
                   {
                    printf("\n");
                    i = 0;}
            }
 
return 0;
 
}

PM MAIL   Вверх
rudolfninja
Дата 8.4.2015, 15:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 341
Регистрация: 19.2.2013
Где: г. Минск

Репутация: 1
Всего: 6



Я не уверен, но попробуйте сделать проверку, что если код символа лежит в интервале от 1 до 31 включительно, то выполняйет следующий код:

Код

std::cout << "^" << char(i + 64) << std::endl;

PM MAIL Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0403 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.