Levin101q Ответов: 2

Может ли кто-нибудь объяснить, что будет напечатано на экране, если я наберу слово grejanje, и что означает команда \e?


#include <stdio.h>
void main()
{
    char znak = ' ';
    long brojac = 0;
	
    while( znak != '\e' )
    {
        switch( znak = getch() )
	{
	    case 'a' :
	    case 'e' :
	    case 'i' :
	    case 'o' :
	    case 'u' :
	        brojac++ ;
		break;
            default  :
	        brojac--;
        };
	printf( "%i", brojac );			
    };
}


Что я уже пробовал:

Может ли кто-нибудь объяснить, что будет напечатано на экране, если я наберу слово grejanje, и что означает команда \e?

phil.o

Я не уверен \e соответствует чему угодно; я этого не знаю, и быстрый поиск ничего не принес.
Вы уверены, что это не опечатка? В противном случае вам следует спросить автора оригинала, каковы были его намерения, когда он писал это.

Levin101q

На самом деле \e означает, что программа перестанет смотреть на Буквы в тот момент, когда вы нажмете клавишу enter.

2 Ответов

Рейтинг:
2

OriginalGriff

Почти наверняка "\e "должно быть " \0xe", которое представляет собой шестнадцатеричное значение, соответствующее CTRL+N, символу, который часто генерируется при нажатии клавиши ENTER - однако чаще всего он вводится как "\n".

Что касается того, что генерируется, то если вы наберете гласную, то число увеличится, а согласная уменьшит его. Он начинается с 0, так что это просто для вас, чтобы работать.

Но серьезно: это уже второе "что это будет делать?" вопрос от вас сегодня - оба они домашние задания, я подозреваю - и вы должны решить его для себя. Попробуйте запустить код, который вам дали, чтобы увидеть, что он будет делать, а затем используйте отладчик, чтобы выяснить, почему. Таким образом, вы узнаете вещи, которые вы не узнаете, получая ответы ... и это на самом деле быстрее, чем ждать, пока другие сделают за вас домашнее задание!


Рейтинг:
2

Patrice T

Цитата:
что означает команда \e?

Похоже, что \e-это нестандартная escape-последовательность для Клавиша escape.
Правила для C++ строковые литералы символ - переполнение стека[^]
Цитата:
Может ли кто-нибудь объяснить, что будет напечатано на экране, если я наберу слово grejanje

Во - первых, вы можете экспериментировать и запускать код с различными входными данными.
Как я уже говорил в вашем предыдущем вопросе, отладчик покажет вам, что делает код, шаг за шагом. Дай ему попробовать.
Может кто-нибудь объяснить мне, как я получил 5135311?[^]
-----
Совет: Научитесь правильно делать отступы в вашем коде, это покажет его структуру и поможет чтению и пониманию. Это также помогает выявлять структурные ошибки.
#include <stdio.h>
void main()
{
    char znak = ' ';
    long brojac = 0;

    while( znak != '\e' )
    {
        switch( znak = getch() )
        {
        case 'a' :
        case 'e' :
        case 'i' :
        case 'o' :
        case 'u' :
            brojac++ ;
            break;
        default  :
            brojac--;
        };
        printf( "%i", brojac );
    };
}

Стиль отступа - Википедия[^]

Профессиональные редакторы программистов имеют эту функцию и другие, такие как сопоставление скобок и подсветка синтаксиса.
Блокнот++ Главная Страница[^]
личные[^]