gpt4 book ai didi

c++ - 当特定字符被击中时,如何打破循环?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:54:12 25 4
gpt4 key购买 nike

假设我有一个像这样的循环

for(int i = 0; i < 100000; i++)
{
crunch_data(i);

if(i_has_been_hit())
break;
}

每当我在键盘上点击 i 时,我都想退出循环。现在以下方法将不起作用,因为 std::cin block :

bool i_has_been_hit(){
char a;
std::cin >> a;
return a == 'i';
}

有没有一个功能可以让我检查键盘是否被击中而不会阻塞?如果有什么不同的话,我在 Win32 上使用带有 CodeBlocks 的 g++。

最佳答案

如果您使用的是带有 conio.h 的 Win32,您可以使用通常的 kbhit()getch() 组合:

#include <conio.h>
#include <iostream>

int main(){
for(int i=0;i<100000;i++)
{
std::cout<<"Hi";
if(kbhit() && getch() == 'i'){
break;
}
// other code
}
}

关于c++ - 当特定字符被击中时,如何打破循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22687383/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com