如何在接受输入时执行命令
How to execute commands WHILE taking input?
如何在
等待输入时执行某些命令?
像这样:
while(/*taking input*/) {
sleep(15);
cout<<"You still there?";
//...
}
因此,它要求输入,但在等待按下 ENTER 时,它会执行命令。
可能吗?
编辑:
感谢您的所有建议:)
使用 C++11 线程工具,您可以简单地生成一个"worker"线程,该线程在您等待输入时完成工作。
std::async
是异步获取操作结果的简单方法;您的问题描述不是很精确,所以我不知道我还可以在这里添加什么。
它可以在没有线程的情况下完成,但是您需要对输入进行异步访问,这通常不是跨平台的。
在Martin的评论之后,我实际上更清楚地看到了问题;在这种情况下,你最好的选择可能是寻找更抽象的IO API,它将提供非阻塞输入,或者基于特定于操作系统的API创建自己的API。
有两种方法可以实现您的目标:
- 多线程
- 异步 IO
对于您提到的用例(聊天),我建议研究第二个选项。您可能想查看 boost asio 的文档,其中包含聊天客户端和服务器的示例。
你想生成另一个线程,与等待 I/O 的线程并行运行(在本例中来自 stdin 的输入)。 在等待生成的线程中的 I/O 时运行您想要执行的任何操作。看看提升线程
如果您允许在细分受众群之外添加内容,它将起作用:
[wolf@Targaryen]:~$ cat main.cpp
#include <iostream>
#include <string>
using namespace std;
int main() {
string s;
while( getline(cin, s) and s != "" ) {
cout << "You still there?" << endl;
}
}
[wolf@Targaryen]:~$ r
adb
You still there?
sfcetgw
You still there?
wefew
You still there?
[wolf@Targaryen]:~$
相关文章:
- 使用QProcess执行命令,并将结果存储在QStringList中
- 如何在 Minecraft 服务器上执行命令
- 如何在C++中执行命令并获取命令的返回代码标准输出和标准
- 如何查看完整的CMD执行命令,包括参数和标志?
- CPP 中 z3 的编译和执行命令?
- 线程保持运行并执行命令
- 在 MinGW 和 MinGW-64 上执行命令后变量为空?
- popen() 将执行命令的输出写入 cout
- 如何在 Heroku 中的 Python 服务器上执行 "g++" 命令?
- 以普通用户身份执行命令
- 如何在生成之前在 cmake 中执行命令?
- 如何使用 c++ 在 cmd 中使用管理员权限执行命令
- 如何在Unix Shell中的后台执行命令
- 如何从连接的控制台执行命令
- 尝试在路由器上执行命令。C++ & libssh
- 在服务器上执行命令,然后将结果发送到Windows中的客户端
- 通过C编程打开终端并执行命令
- 在远程服务器上执行命令行命令
- 在Linux上使用c++执行命令时被阻止
- 使用popen执行命令