gpt4 book ai didi

c++ - 一个可执行文件的“连续”C++ 输出作为另一个程序的输入

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:28:26 27 4
gpt4 key购买 nike

我正在尝试将一个可执行文件生成的输出作为输入传递给另一个可执行文件。我已经能够一次发送一行。

问题是当我尝试从 Program1 发送一个“在 while 循环中生成的行序列”以供 Program2 读取为输入时。我尝试在终端 (如下所示) 中通过管道传输可执行文件,但它无法工作。

./Program1 | ./Program2  
./Program1 |xargs ./Program2
./Program1 > ./Program2

我想避免文件 I/O。

注意:平台:Linux

==================

类似于以下示例的内容

Program1(写入终端)

int main(int argc, char *argv[])
{
int i = 2200;
while(1){
printf("%d \n", i);
i++;
}
}

Program2(从终端读取,Program1 的输出)

int main(int argc, char *argv[])
{
while(1){
// Read 'i' values
cout << "There are " << argc << " arguments:" << endl;
// Loop through each argument and print its number and value
for (int nArg=0; nArg < argc; nArg++)
cout << nArg << " " << argv[nArg] << endl;
}

return 0;
}

最佳答案

问题是您正在尝试读取程序参数。但是,当您从一个程序传输到下一个程序时,第一个程序的输出将成为第二个程序的标准输入 (std::cin)。

在程序 2 中试试这个:

#include <string>
#include <iostream>

int main()
{
std::string line;

while(std::getline(std::cin, line)) // read from std::cin
{
// show that it arrived
std::cout << "Line Received: " << line << '\n';
}
}

关于c++ - 一个可执行文件的“连续”C++ 输出作为另一个程序的输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37604650/

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