Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
igorperzh
3 / 3 / 0
Регистрация: 30.05.2011
Сообщений: 41
#1

Некорректная работа ф-ции getch() в цикле - C++

11.06.2011, 03:23. Просмотров 946. Ответов 7
Метки нет (Все метки)

C++
1
2
3
4
5
while (iKey != 27)
    {
        iKey = getch();
        cout << "qwer";
    }
Не могу понять почему после нажатия любой клавиши(понятно кроме Esc) программа печатает "qwerqwer"... Подскажите в чем дело и как это исправить.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.06.2011, 03:23
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Некорректная работа ф-ции getch() в цикле (C++):

Подскажите функцию, аналогичную ф-ции getch() - C++
Так как функция getch() считывает информацию до символа новой строки, мне нужна функция, считывающая весь текст целиком. Желательно в...

Некорректная работа команды continue в цикле при проверке корректности введенных данных - C++
Доброго времени суток, уважаемые форумчане. Есть программа для определения количества купюр (монет) того или иного номинала, которое...

Работа с while, kbhit() и getch() - C++
Здравствуйте! Подскажите пожалуйста, Задача, сделать точку в консоли, которая бы двигалась в заданном направление и меняла его при...

Странная работа getch - C++
#include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; int main() { int m; m=getch(); switch (m)

Передача ф-ции как параметра другой ф-ции - C++
struct pupil{ char surname; int school; int answer; int num; } tmp, a; int usl(int i, pupil a) { }

Некорректная работа программы - C++
Суть программы в том, что есть записанные в файле слова с ответами (разделены &quot;\t\t&quot;). Программа считывает поочереди строки, разделяет ее...

7
doleo
6 / 6 / 1
Регистрация: 22.02.2010
Сообщений: 13
11.06.2011, 03:32 #2
1-й проход цикла:
Значение переменной iKey еще пусто (!=27) - считываем символ, печатаем "qwer"
2-й проход цикла:
Значение переменной iKey = считанному в первой итерации символу

Вот так работает ваша программа
0
igorperzh
3 / 3 / 0
Регистрация: 30.05.2011
Сообщений: 41
11.06.2011, 11:59  [ТС] #3
Цитата Сообщение от doleo Посмотреть сообщение
1-й проход цикла:
Значение переменной iKey еще пусто (!=27) - считываем символ, печатаем "qwer"
2-й проход цикла:
Значение переменной iKey = считанному в первой итерации символу

Вот так работает ваша программа
не совсем понятно, почему печатает "qwerqwer"
0
talis
791 / 543 / 37
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
11.06.2011, 12:03 #4
Потому, что два раза проходит цикл. Хотите, чтобы проходило один раз, используйте цикл с пост-условием, то бишь do ... while( ... );
0
diagon
Higher
1929 / 1195 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
11.06.2011, 12:08 #5
Так попробуйте
C++
1
2
while (getch()!=27)
    cout << "qwer";
Протестировать возможности не имею.
0
talis
791 / 543 / 37
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
11.06.2011, 12:16 #6
diagon, по идее, если первым же символом нажмут 27-й, то вообще ничего не будет выведено.
0
igorperzh
3 / 3 / 0
Регистрация: 30.05.2011
Сообщений: 41
11.06.2011, 12:37  [ТС] #7
Цитата Сообщение от talis Посмотреть сообщение
diagon, по идее, если первым же символом нажмут 27-й, то вообще ничего не будет выведено.
если первым нажать Esc будет выведено qwer

Добавлено через 1 минуту
Мне вот что не понятно, когда нажимаю клавиши: стрелки, page up, page down, delete, insert, home, end печатаются сразу два qwer, при нажатии на др. кнопки все работает отлично
0
train-killer
0 / 0 / 0
Регистрация: 07.06.2011
Сообщений: 3
11.06.2011, 12:59 #8
Цитата Сообщение от igorperzh Посмотреть сообщение
Мне вот что не понятно, когда нажимаю клавиши: стрелки, page up, page down, delete, insert, home, end печатаются сразу два qwer, при нажатии на др. кнопки все работает отлично
Для данных клавиш, и для некоторых других, при нажатии вводится 2-байтное значение.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.06.2011, 12:59
Привет! Вот еще темы с ответами:

Некорректная работа компилятора - C++
простая схема для метода пузырькового упорядочения /* * Проект 4-1. Метод пузырькового * упорядочения. */ #include...

Некорректная работа программы - C++
Добрый день! Я попытался решить задачу № 5 &quot;Статистика&quot; с сайта acmp.ру. Текст задачи: Вася не любит английский язык, но каждый...

Некорректная работа программы - C++
Помогите, пожалуйста, понять почему не работает программа. Ввод предложения работает, однако после нажатия клавиши Enter инвертированный...

Некорректная работа цикла for. - C++
Ниже приведен код программы, вычисляющей по заданному n значение n!. Прошу объяснить, почему программа выдает отрицательные числа порядка...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Yandex
Объявления
11.06.2011, 12:59
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru