c++ - 在 C++ 中,如何获取一个程序的输出并将其用作另一个程序的输入?

标签 c++ input inputstream outputstream

我有一个程序将实验计数作为命令字符串参数并输出 float 序列。 例子: im_7.exe 10 10.41 13.33 8.806 14.95 15.55 13.88 10月13日 12.22 9.09 10.45

所以,我需要在我的程序中调用这个程序并分析这个数字序列。

最佳答案

如果您使用的是 Windows,那么您需要执行以下操作

  1. 使用 Windows 的 CreatePipe api 创建一个 Pipe1。使用此管道从子进程的 STDOUT 读取数据。
  2. 以相同的方式创建一个 Pipe2,并使用该管道将数据写入子进程的 STDIN。
  3. 创建子进程并在启动信息中提供这些句柄并从父进程继承句柄。同时传递 cmd 行参数。
  4. 关闭Pipe1的写端和Pipe2的读端。
  5. 在您的情况下,您没有向子进程输入中写入任何内容。您可以直接从 Pipe1 读取子进程输出中的数据。

有关示例,请查看以下链接。 http://msdn.microsoft.com/en-us/library/ms682499%28VS.85%29.aspx

希望这就是您要找的。

关于c++ - 在 C++ 中,如何获取一个程序的输出并将其用作另一个程序的输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6058654/

相关文章:

c++ - GTK+ 如何处理指针?

c++ - 警告 C4146 减去无符号类型的运算符

java - 如何获取并按空格分割输入的多个字符串行,然后将它们添加到Java中的arrayList?

java - 以不同的速率从 InputStream 中多次读取

php - 流上的 getimagesize() 而不是字符串

java - jar 可执行文件中的音频读取

c++ - 将 char* 转换为 boost::array 以供套接字使用

c++ - 在 Windows 上构建 LLVM 时出错 - LNK1104

angularjs - 组件内部的 Angular2 表单验证

c - 在 C 中从 Stdin 读取两次