在cpp中实现非阻塞式用户输入
时间: 2024-05-08 17:20:21 浏览: 71
QConsoleListener:小型类,用于异步监听控制台输入
可以使用以下代码:
```cpp
#include <iostream>
#include <string>
#include <chrono>
#include <thread>
int main() {
std::cout << "Enter text: ";
std::string input;
std::chrono::milliseconds duration(100); // delay of 100 milliseconds
while (true) {
if (std::cin >> input) { // if there is input from user
std::cout << "You typed: " << input << std::endl;
break;
}
// if there is no input, wait for a short duration before checking again
std::this_thread::sleep_for(duration);
}
return 0;
}
```
在上面的代码中,我们使用一个循环来不断检查用户是否输入了文本。如果有,那么我们将文本打印出来,并且退出循环。如果没有输入,那么我们使用`std::this_thread::sleep_for()`函数来等待一小段时间,然后再次检查用户是否输入了文本。这个方法不会阻塞程序的执行,因为我们使用了`std::this_thread::sleep_for()`函数等待。
阅读全文