Вывод на печать символа ввода и его десятичное значение

Тема в разделе "C/C++/C#", создана пользователем zamanov, 8 апр 2015.

  1. zamanov

    zamanov New Member

    Регистрация:
    8 апр 2015
    Сообщения:
    2
    Симпатии:
    0
    Основной вопрос задачи - вывод непечатаемых символов (тех что меньше пробела в кодировке ASCII).
    Вот полный текст задачи: Напишите программу, которая считывает поток символов до момента обнаружения EOF. Программа выводит на печать каждый символ и его десятичный код. Если встречается непечатаемый символ новой строки или табуляции, печатается \n or \t. используйте запись, выполняемую с помощью управляющих символов.
    Далее пишется Например ASCII 1 соответствует комбинации ctrl+A, что отображается как ^A, а код А - ctrl+A +64. Далее просится выводить по десять пар, но начинать с новой строки каждый раз если встречается символ новой строки.....
    Меня завело в тупик вот это последнее пояснение.... решить эту задачу я смог методом исключения (для случая табуляции и новой строки).....но меня терзает мысль что я просто так и не понял правильно условие...
    Подскажите как используется в данном примере условие замены ctrl+A
    Вот мой код
    Код (C++):
    #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;
     
    }
     
Загрузка...

Поделиться этой страницей