Я тоже использовал Break в конце каждого случая, но он не ломается. Я думаю, что _getch()
принимает два входа за раз, или у него всегда есть некоторые данные мусора в начале каждого цикла.
Вот код, генерирующий эту проблему.
#include <conio.h>
#include <iostream>
using namespace std;
int main()
{
int c = 0;
while (1)
{
c = 0;
switch ((c = _getch())) {
case 72:
cout << endl << "Up" << endl;//key up
break;
case 80:
cout << endl << "Down" << endl; // key down
break;
case 75:
cout << endl << "Left" << endl; // key left
break;
case 77:
cout << endl << "Right" << endl; // key right
break;
default:
cout << endl << "null" << endl; // not arrow
break;
}
}
return 0;
}
![[Here my output]](https://i.stack.imgur.com/XB2aU.png)