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

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

Войти
Регистрация
Восстановить пароль
 
BarsicPlus
1 / 1 / 0
Регистрация: 21.05.2014
Сообщений: 11
#1

Как можно ввести с клавиатуры символ не прерывая цикл в программе - C++

18.08.2014, 13:20. Просмотров 389. Ответов 3
Метки нет (Все метки)

Ввод символа.
Здравствуйте. У меня вопрос о том, как можно ввести с клавиатуры символ не прерывая цикл в программе.
То есть, у меня есть цикл, который постоянно выводит сообщение. И когда пользователь нажмет соответствующую клавишу на клавиатуре, цикл должен остановиться.

C++
1
2
3
4
5
6
7
while(1) {
    cout << "Enter symbol a" << endl;
 
    //Ввод символа
 
    Sleep(100);
}
Цикл должен повторяться до тех пор, пока пользователь не введет нужный символ.
Но использовать cin, getch нельзя, так как они прерывают выполнение цикла

То как быть? Какой оператор не прерывает выполнение цикла при вводе символа?
Спасибо.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.08.2014, 13:20
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как можно ввести с клавиатуры символ не прерывая цикл в программе (C++):

Ввести с клавиатуры символ. Определить, является ли введённый символ буквой - C++
Ввести с клавиатуры символ. Определить, является ли введённый символ буквой.Заранее благодарчик!

Ввести с клавиатуры символ (в переменную char) и определить, соответствует ли введенный символ 'Q' или 'q' - C++
1)Ввести с клавиатуры символ (в переменную char) и определить, соответствует ли введенный символ 'Q' или 'q' (использовать логический...

Можно ли сменить раскладки клавиатуры в программе и если да, то как? - C++
Здравствуйте, хотел бы узнать, есть ли в с++ возможность сменить раскладку? Например так //Была русская changeLanguage(); ...

Ввести с клавиатуры цифру, а вывести на экран должно символ ASCII - C++
Проблема, в том что я придумал себе задачу, вводить с клавиатуры цифру,а выводить на экран должно символ ASCII. Всячески пытался её...

Почему если в консоли ввести вместо числа любой символ, программа впадает в бесконечный цикл? - C++
Всем привет! Недавно начал изучать С++ и столкнулся с проблемой при создании калькулятора. Если в консоли ввести вместо числа любой...

Одну строку инициализировать в программе, другую - ввести с клавиатуры; соединить их содержимое - C++
Здравствуйте, помогите пожалуйста с такой задачкой, не могу разобраться как её решить. Одну строку инициализировать в программе,...

3
SatanaXIII
Супер-модератор
Эксперт С++
5650 / 2695 / 252
Регистрация: 01.11.2011
Сообщений: 6,588
Завершенные тесты: 1
18.08.2014, 13:28 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Используйте kbhit().

Выход из бесконечного цикла по нажатию кнопки.
1
dzrkot
zzzZZZ...
523 / 353 / 54
Регистрация: 11.09.2013
Сообщений: 2,037
18.08.2014, 13:30 #3
Цитата Сообщение от BarsicPlus Посмотреть сообщение
Здравствуйте. У меня вопрос о том, как можно ввести с клавиатуры символ не прерывая цикл в программе.
создаешь поток который отдельно следит за вводом с клавиатуры
гуглишь thread
http://scrutator.me/post/2012/04/04/parallel-world-p1.aspx
1
BarsicPlus
1 / 1 / 0
Регистрация: 21.05.2014
Сообщений: 11
18.08.2014, 15:51  [ТС] #4
SatanaXIII, Большое Спасибо. Я написал такой код:
(Может кому пригодится)

C++
1
2
3
4
while(!_kbhit()) {
    cout << "Text-Text-Text" << endl;
}
cout << "You pressed: " << (char)_getch();
dzrkot, также спасибо. Многопоточность - это сейчас для меня немного за тяжело. Но в будущем в самый раз)
0
18.08.2014, 15:51
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.08.2014, 15:51
Привет! Вот еще темы с ответами:

Одну строку инициализировать в программе, другую-ввести с клавиатуры. Сравнить данные строки по длине. - C++
Помогите пожалуйса написаль код программы, скоро сессия, а работа не сдана, потому что я не могу её написать..... Задание: Одну строку...

Как ввести двумерный массив с клавиатуры? Его размерность [n][m] нужно задавать с клавиатуры. - C++
Привет всем. Как ввести двумерный массив с клавиатуры? Его размерность нужно задавать с клавиатуры.

В тексте удалить указанный символ везде, где он встречается. Программа не позволяет ввести символ - C++
#include&lt;iostream&gt; #include&lt;conio.h&gt; #include&lt;cstdlib&gt; using namespace std; int main() { setlocale(0,&quot;Russian&quot;); char s; ...

Как не прерывая программу запустить процесс? - C++
День добрый, есть проблема следующего плана: Необходимо программно (по результатам выбора пользователя) последовательно запустить...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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