传递程序1的输出作为程序2的输入
Passing program one output as input for program two
我正在寻找一种方法将程序1的输出传递到程序2的输入。我已经创建了两个非常简单的程序,试图了解如何做到这一点,但我有问题。
ProgramOne:
#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;
}
我已经尝试使用pipe命令传递输出:
./one | ./two
但是我的第二个程序只输出一个参数:
There are 1 arguments:
0 ./two
我还尝试了以下命令:
/one > ./two
但是这导致两个程序都没有输出。
我哪里错了?
你将一个程序的输出传递给另一个程序的方式是正确的:
./one | ./two
然而,你似乎不想这样做,你想传递一个程序的所有输出作为另一个程序的命令行参数。
有多种方法可以做到这一点,但其中之一是:./two `./one`
(注意引号)
如果您想将其作为单个参数传递,则尝试:
./two "`./one`"
你很接近了。可以使用xargs工具将标准输出转换为参数序列,以便调用后续程序。例如,你可以这样做:
./one | xargs ./two
这将有望输出"Hello world"作为程序二的参数
相关文章:
- 在C++程序中输入的文本文件将不起作用,除非文本被复制和粘贴
- 无法在windows控制台中为C++程序提供必要的输入
- 更改.cpp程序的输入文件中数据的位置会意外更改输出
- 我试图制作一个程序,要求用户输入问题和答案,但程序循环不正确
- 我的程序没有从文件中读取并输入数据
- 3-3. 编写一个程序来计算每个不同单词在其输入中出现的次数
- LLVM | codegen 用于带有命令行选项的程序输入功能
- 程序输入名称和高度并显示它。我不知道如何显示列表中最高人的姓名和身高
- 程序输入密码并解锁窗口7,8,10
- 堆栈程序输入名称并重印在C 中
- C 程序输入超过某些输入行时行不通
- C++程序 - 输入文本流
- 当程序输入主要功能时,为什么要清除此std ::向量
- 在不模拟Ctrl+V的情况下将数据粘贴到任何应用程序输入字段中.Windows c++
- c++ 将函数输出重定向到编译的程序输入,反之亦然
- 程序输入只识别单词而不识别行
- 如何与Node.js进程中的C++程序输入流进行交互
- C++命令行实用程序输入文件的位置会更改行为
- 我的程序输入无法保存到文本文件中
- 提示用户为缩写程序输入字符串