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

时间:2015-12-14 03:21:05

标签: c++ c unix iostream

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

./sum.out
Enter a: 2
Enter b: 3
Sum is 5
UNIX shell上的

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

2 个答案:

答案 0 :(得分:0)

使用IO redirection

$ ./sum.out < in.txt

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

$ cat in.txt
2
3

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

`$ ./input.out | ./sum.out`

答案 1 :(得分:0)

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

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