在一行中从终端发送 C++ 输入

Send C++ input from terminal in one line

我有一个接受一些用户输入的 C++ 算法,所以大致类似于

./sum.out
Enter a: 2
Enter b: 3
Sum is 5

在 UNIX shell 上。我想做的是通过使用另一个发送多个 system("./sum.out") 命令的 c++ 文件来自动执行该过程,但我不知道如何让它也发送参数,即 ab就我而言。换句话说,我希望第二个文件为其提供参数而不是用户。

使用IO redirection:

$ ./sum.out < in.txt

其中 in.txt 是包含输入的文本文件:

$ cat in.txt
2
3

将标准输出从程序 a.out 重定向到 sum.out

的标准输入
`$ ./input.out | ./sum.out`

我最终使用了格式化字符串:

char buffer[100];
snprintf(buffer,100,"echo %d %d | ./sum.out",2,3);
system(buffer);