提问人:EagerHEP 提问时间:12/14/2015 更新时间:12/14/2015 访问量:203
从终端发送一行C++输入
Send C++ input from terminal in one line
问:
我有一个C++算法,它接受一些用户输入,所以大致如下
./sum.out
Enter a: 2
Enter b: 3
Sum is 5
在 UNIX shell 上。我想做的是使用另一个发送多个命令的 c++ 文件来自动化该过程,但我不知道如何让它也发送参数,即 就我而言。换句话说,我希望第二个文件为它提供参数,而不是用户。system("./sum.out")
a
b
答:
0赞
Ayush
12/14/2015
#1
使用 IO 重定向:
$ ./sum.out < in.txt
其中 是包含输入的文本文件:in.txt
$ cat in.txt
2
3
将 stdout 从程序重定向到 stdin 的a.out
sum.out
`$ ./input.out | ./sum.out`
评论
0赞
EagerHEP
12/14/2015
我真的不能使用它,因为每次运行代码时我的 a 和 b 都会不同。
0赞
EagerHEP
12/14/2015
#2
我最终使用了一个格式化的字符串:
char buffer[100];
snprintf(buffer,100,"echo %d %d | ./sum.out",2,3);
system(buffer);
评论
system
pipe
fork
exec
dup
system("echo 2 3 | ./sum.out");
system
snprintf
system
snprintf
成功了,谢谢!