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

Очистка буфера клавиатуры - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Смысл спецификатора mutable http://www.cyberforum.ru/cpp-beginners/thread786365.html
В этом тема и заключается %-)
C++ Записать в вектор строки разной длины из файла Всем добрый день, ситуация следующая: не могу записать в вектор строки разной длины из файла допустим есть файл под названием first.txt в нем содержатся несколько имен mike sveta vasya dima aleks я хочу прочитать эти строки из файла и записать их в вектор под разными индексами, а затем вывести http://www.cyberforum.ru/cpp-beginners/thread786361.html
Чтение символов из файла C++
Дан текст; определить, содержит ли он символы, отличные от букв и пробела
Нужны коментарии к коду, или объяснение C++
#include "stdafx.h" #include <iostream> #include <iomanip> #include <cstdlib> #include <ctime> #include <cmath> #include <algorithm> using namespace std;
C++ Подскажите идею http://www.cyberforum.ru/cpp-beginners/thread786323.html
:) Подскажите пожалуйста идею программы, что то чтоб использовала базу данных) Оч хочу написать что то новое)
C++ Приведение типов Уважаемые программеры, ПОМОГИТЕ!!! Нужно (мне) реализовать шаблонную функцию для приведения типов. Пример: newType_cast<T>(“123”); где вместо T могут быть: int, double,std::string. P.S. C++ изучаю 2-3 месяца, поэтому, если возможно, пишите проще. Если есть готовая функция, буду очень благодарен, если нет, то хотя бы укажите направление СПАСИБО! подробнее

Показать сообщение отдельно
fuelcs
12 / 12 / 0
Регистрация: 23.01.2013
Сообщений: 143
14.02.2013, 18:39     Очистка буфера клавиатуры
Добрый день.
Начал писать тетрис. Возникла проблема с обработкой нажатий клавиш. Если часто нажимать на клавиши, то определенные действия выполняются и посте того, как перестал нажимать.
Погуглил, попробовал функцию fflush(stdin) но это проблему не решило. Как полностью очистить буфер?
Вся программа уже довольно большая, поэтому выложу только проблемное место:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
for (;;)
    {
        int shape=rand()%(7);
        int shape_position=rand()%(4);
        int position_x=4;
 
        for (int position_y=0;position_y<25;position_y++)
        {
            fflush(stdin);
            if (_kbhit())
            {
                int get=_getch();
                fflush(stdin);
                if (get==32)
                {
                    shape_position++;
                }
                if (shape_position==4)
                {
                    shape_position=0;
                }
            }
            int error=move_down(map,shapes,shape,shape_position,position_y,position_x);
            if (error==1)
            {
                lay(map);
                break;
            }
            if (position_y==24)
            {
                lay(map);
            }
            system("cls");
            fill(map);
            Sleep(200);
        }
        
        
 
 
        if (_kbhit())
            break;
    }
Добавлено через 40 минут
Возникла идея вместо:
C++
1
2
3
4
if (_kbhit())
{
    get=_getch();
}
написать:
C++
1
2
3
4
while(_kbhit())
{
    get=_getch();
}
Правда не совсем понимаю как оно работает... Наверное должно перебрать весь буфер. Но не знаю, не отсеет ли "нужные" нажатия клавиш?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 04:10. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru