Вы можете изменить свой оператор cout на cout << "You just typed: " << c;
Таким образом, вы сможете увидеть, успешно ли выполнено условие if. Также пост для печати ().
Вот пример простого захвата символа, не уверенный, почему вы используете getch (), вы должны использовать cin.get, но в любом случае для вашего примера:
bool isPrintable(char c)
{
bool isItPrintable=false;
if ((int)c >= 65)
isItPrintable=true;
return isItPrintable;
}
int main()
{
char c;
while (c != '\r')
{
c=getch();
if (isPrintable(c))
{
cout << "You just entered: " << c << endl;
}
}
return 0;
}
Для всех, кому интересно, getch () доступен в conio.h
. В моем случае я просто проверяю представление int для символа и, если оно> 65, возвращает true, иначе false.
EDIT
Влад, причина, по которой w и z оба появляются, заключается в том, что их десятичное представление w равно 119, а z равно 123. Теперь ваша функция isPrintable имеет условие if, которое допускает это:
(int(c) > 42 && int(c) < 123)
Это даст значение TRUE, поэтому, если вы не хотите использовать w, вам нужно ограничить этот диапазон.