kbhit С++

интернет Компьютеры программирование с++

Функция kbhit проверяет наличие ввода с клавиатуры (нажатие клавиши).
Работает код:
void main()
{
printf("Приготовившись, нажмите любую клавишу\n");
while(!kbhit());
printf("\n Была нажата клавиша (%c)\n"); _getch();
}
Тогда почему не работает код, записывающий число в I как только оно было набрано?
int main()
{
setlocale(LC_CTYPE, "");
int i=0;
cout << "Введи число: ";
while(!(_kbhit())){
cin >> i;
}
cout << "Введенное число " << i;
cout << endl; system("pause"); return 0;
}

Заранее спасибо
Ответы:
Потому что ты не знаешь основ языка и чем отличается число от строки.
Замени:
while(!(_kbhit())){
cin >> i;
}
на: cin >> i;
_kbhit(), как вы правильно отметили, проверяет наличие ввода с клавиатуры. В связке с _getch(), _getch() не ждет данных в буфере, потому что они там уже есть, и если он успеет их прочитать, «обычного» ожидания ввода не будет. Вообще, как бы _getch() — это такая вещь, которая работает череж жопу, но работает. :)


12 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

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

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.