C++ can';不要忽略回车键
这是我的密码 当我按enter键为n插入一个值时,它会立即移动到下一个循环 不用再按一次 我已尝试使用cin.clear()、cin.syns()、,。。。但它不起作用 有人知道为什么以及如何修复它吗 谢谢C++ can';不要忽略回车键,c++,visual-c++,C++,Visual C++,这是我的密码 当我按enter键为n插入一个值时,它会立即移动到下一个循环 不用再按一次 我已尝试使用cin.clear()、cin.syns()、,。。。但它不起作用 有人知道为什么以及如何修复它吗 谢谢 int main() { bool isNotExit=true; do { isNotExit=menu(); } while( isNotExit ); return 0; } bool menu() { int n; d
int main() {
bool isNotExit=true;
do {
isNotExit=menu();
} while( isNotExit );
return 0;
}
bool menu() {
int n;
do {
cout<<"n = "<<endl;
cin>>n;cin.ignore(1);
} while( n!=1&&n!=2&&n!=3 );
switch( n ) {
case 1:
{
cout<<"Press enter to continue"<<endl;
bool enter=false;
do {
if( GetAsyncKeyState(VK_RETURN)&0x8000 ) enter=true;
} while( enter==false );
return true;
}
break;
case 2:
{
return true;
}
break;
case 3:
{
return false;
}
break;
}
}
intmain(){
bool isNotExit=true;
做{
isNotExit=菜单();
}while(isNotExit);
返回0;
}
bool菜单(){
int n;
做{
cout发生这种情况的原因是系统特定的。我无法在我的计算机上重现该问题,但我想这一切都与这一行有关:
if( GetAsyncKeyState(VK_RETURN)&0x8000 ) enter=true;
在系统意识到您已释放“回车”以输入n
之前,它已在上面指定的行中对其进行检查。请尝试以下操作:
case 1:
{
sleep(1); // Proof of concept
cout<<"Press enter to continue"<<endl;
bool enter=false;
do {
if( GetAsyncKeyState(VK_RETURN)&0x8000 ) enter=true;
} while( enter==false );
return true;
}
案例1:
{
睡眠(1);//概念证明
如果提问者是错的,就让他自己解决问题吧,他不感激,也不应该得到帮助谢谢你的回答,但我没有否决你,我甚至从昨天起就没有登录过,那是不对的,因为我的否决率不到15,我甚至不能否决你