我正在寻找一种方法将程序一的输出传递给程序二的输入。我创建了两个非常简单的程序来尝试了解如何执行此操作,但我遇到了问题。
程序一:
#include <iostream>
int main()
{
using namespace std;
std::cout << "Hello World!";
return 0;
}
ProgramTwo(打印所有参数):
#include <iostream>
int main(int argc, char *argv[])
{
using namespace std;
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;
}
我试过使用管道命令传递输出:
./one | ./two
但是我的第二个程序只打印了一个参数:
There are 1 arguments:
0 ./two
我也尝试过以下命令:
/one > ./two
但这会导致两个程序都没有输出。
我哪里错了?
最佳答案
您将一个程序的输出传递给另一个程序的方法是正确的:
./one | ./two
但是,您似乎不想这样做,而是想将一个程序的所有输出作为另一个程序的命令行参数传递。
有多种方法可以做到这一点,但其中一种是:
./two `./one`
(注意反引号!)
如果您想将其作为单个参数传递,请尝试:
./two "`./one`"
关于c++ - 将程序一的输出作为程序二的输入传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25136380/