Что делает следующий фрагмент программы while getch z

1. Функция getch() – это функция чтения одного символа со стандартного устройства ввода (то есть клавиатуры), без вывода считанного символа в стандартный поток вывода (на экран).

Прототип функции int getch (void); объявлен в файле ).

Пример: char ch;

if ( ( ch = getch () ) = = 27 )

printf («Вы нажали Escapen»);

В данном случае с клавиатуры читается один символ, заносится в переменную ch и проверяется на соответствие коду клавиши Esc (27) – и все это одним выражением.

Пример: char ch;

printf(“Символ %c имеет код %dn”, ch, ch);

2. Функция getchar () считывает очередной символ из стандартного входного потока (с клавиатуры) и копирует этот символ в стандартный выходной поток (на экран).

Прототип функции int getchar (void); объявлен в файле ).

Пример: #include

/* Note that getchar reads from stdin and is line buffered; this means it will not return until you press ENTER. */

while ( ( c = getchar() ) != ‘n’ )

Программирование на С++. Урок 39. Функция getch()

В результате выполнения этой программы на экране появится строка введенных символов, второй раз эта строка появится после нажатия Enter.

3. Функция putchar() записывает символ в стандартный поток вывода (на экран).

Прототип функции int putchar ( int c); объявлен в файле ).

Пример: char ch;

printf ( «Введите предложение»)’

while ( ( ch = getch () ) ! = ‘n’ )

10.8 Ввод – вывод массивов

Ввод двумерного массива

printf ( «ВВОД МАССИВА n» );

Вывод двумерного массива

printf ( » % 32c Исходный массив n», ‘ ‘ ); /* строка напечатается посередине */

Читайте также:
Как добавить программу в выбор программ

printf ( » %15.5g», a[i][j] );

Глава 7. Блоки и процедуры

Источник: studfile.net

getch () внутри цикла while всегда возвращает 1

Я пытаюсь использовать переменную «ch» после того, как я поймаю ее с помощью функции getch () из выражения внутри цикла. Я не могу использовать его вообще, потому что он всегда возвращает один и тот же код символа (1 как int). Я знаю, что могу просто использовать while (1) и заставить работать getch () оттуда, но это считается плохой практикой, и мне интересно, почему это просто не работает таким образом.

#include #include int main() < while (char ch = getch() != ‘q’) < std::cout >

Я использую code :: blocks 13.12 с компилятором GNU GCC

кстати .. это тоже не работает

int main() < char ch; while (ch = getch() != ‘q’) < std::cout >

Решение

Вы бежите из приоритет оператора . Это как если бы вы написали:

while (ch = (getch() != ‘q’))

Которые будут 1 до q введен, в какой момент он будет 0 ,

Вы хотите сказать:

while ((ch = getch()) != ‘q’)

И в качестве Филипе Гонсалвес упоминает, ch должен быть объявлен как int не char ( getch() возвращает int )

Другие решения

Попробуйте это, у вас был неправильный порядок операций. Либо переместите назначение вправо, либо добавьте круглые скобки.

Циклы. Цикл while. Что это. Что делает. Пример. Синтаксис. Урок #14.


#include #include int main() < char ch; while ((ch = getch()) != ‘q’) < std::cout >

Обратите внимание, что не лучше объявлять переменную в условном выражении цикла.

Источник: web-answers.ru

Консоль. Считывание нажатой клавиши

Нужно, чтобы после нажатия на кнопку программа работала дальше. Чтобы после этой кнопки не приходилось еще жать Enter . Как я понял, этим занимается getchar() , но у меня он не работает, приходится жать Enter . Код для Windows:

Читайте также:
В 1 программе составных операторов может быть несколько

while (z != ‘ ‘)
Отслеживать
user176230
задан 11 апр 2015 в 22:22
947 5 5 золотых знаков 18 18 серебряных знаков 31 31 бронзовый знак

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

На Windows можно использовать getch() вместе с заголовочным файлом conio.h.

#include #include int main() < int z while (z != ‘ ‘) < cout>

На *nix-OS есть curses.h (ncurses.h), там также имеется функция getch(). Однако при использовании данной функции вы остаетесь привязаны к curses, поэтому желательно использовать следующую конструкцию:

#include #include int getch( )

Также на Windows можно использовать PDCurses для создания мультиплатформенных консольных приложений, он почти полностью совместим с ncurses.

Источник: ru.stackoverflow.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru