1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

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

Тема в разделе "Вопросы новичков и не только", создана пользователем zamanov, 8 апр 2015.

  1. zamanov

    zamanov New Member

    Репутация:
    0
    Регистрация:
    8 апр 2015
    Сообщения:
    2
    Симпатии:
    0
    Основной вопрос задачи - вывод непечатаемых символов (тех что меньше пробела в кодировке 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;
     
    }
     
Загрузка...

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