为什么我需要两个 _getch() 来获得正确的值?

Why do i need two _getch() to get the correct value?

我试图找到箭头键的字符代码,所以写了这个-

char x=_getch();
cout<<(int)x;  

无论我按哪个方向键都打印-32。然后我添加了一行,我的代码看起来像这样-

char x=_getch();
x=_getch();
cout<<(int)x;  

上面的代码打印了正确的值。谁能解释为什么会这样。
我正在使用 Code::Blocks 和 GNU GCC 编译器。

我想这会回答你的问题

下面link回答了类似的问题。

getch and arrow codes

这是来自 link

的其中一个答案的屏幕截图