从.exe读取输入,并写入.EXE,以阅读国际象棋引擎命令
Reading input from .exe and writing to a .exe for reading Chess engine commands
我整天都在搜索一个示例C 程序,该程序将使用Ready .exe文件,该文件具有输出字符串,然后等待Standart Input,然后再次打印输出等等。
例如,我的C 程序将使用标准输出将" UCI"写入.EXE程序,.EXE程序将再次使用字符串回复,我将能够在我的C 程序中阅读,并且我再次发送一个新字符串,并将等待.exe。
我找到了有关管道的东西,但我认为它们真的很难理解。我可以使用任何准备好的库/界面吗?或您可以给我提供管道的任何例子?
如果您只知道C 的基础知识,则应该遵循它,因为它不需要任何外部lib级别程序
int main()
{
std::string in;
while(std::cin >> in)
{
std::string cmd = std::string("/full/path/to/second.exe <") + in + " >outfile.txt";
system(cmd.c_str());
std::ifstream fin("outfile.txt");
std::cout << fin;
}
}
如果您开放使用更大的框架,则QT中有一个易于使用的类来处理进程:http://doc.qt.io/qt-5/qprocess.html。
QProcess exe;
exe.start("foo.exe");
exe.write("uci");
exe.waitForReadyRead();
auto result = exe.readAll();
在Windows上,您可以使用CreateProcess/createpipe,但是代码将更加详细。例子:https://msdn.microsoft.com/en-us/library/windows/desktop/mms682499(v=vs.85).85).aspx
相关文章:
- 从命令行c++发送文本文件名
- 如何使用 < 和 > 命令获取 c++ 中的输入和输出?
- 为cl.exe(Visual Studio代码)指定命令行C++版本
- 如何在OMNET++中指定与命令行参数组合的输出文件名
- 使用QProcess执行命令,并将结果存储在QStringList中
- 数组长度,为什么从命令行获取时不能使用它?
- 如果用户输入无效,如何使用字符串变量-C++重复输入命令
- clang整洁10忽略了我的NOLINT命令
- 在子目录中使用target_sources()命令时用于单元测试(qtest)的项目结构
- 如何处理linux终端中带有负号(-)的C++中的命令行参数
- VS Code "command":"make"与终端窗口中的命令行"make"不同
- 使用VS Code和CMake Tools运行自定义命令
- 如何使用ESP8266向谷歌主页发送命令
- 如何使 windows 命令提示符在C++可执行文件上显示返回值?
- 未定义的引用 .. 使用 OpenCV 编译 C++ 代码时,从命令行
- 通过 Openssl 命令行加密,通过 c++ 解密
- CMake "--target install"无需"--build"命令行
- Gstreamer 管道从命令 lne 到 c 代码
- 自动"yes"到 Popen SSH 命令
- 从.exe读取输入,并写入.EXE,以阅读国际象棋引擎命令