我正在自动编译和执行 C++ 程序(+100 个程序),其中一些程序需要用户交互。
下面是一个需要用户插入字符串的 C++ 程序示例:
#include <iostream>
#include <string>
using namespace std;
int main ()
{
string name;
cout << "Enter your name: ";
cin >> name;
cout << "your name is: " << name << endl;
return 0;
}
这里我需要的是编译它、执行它并将程序的输出重定向到另一个文件:
g++ -std=c++11 -o practice practice.cpp
为了自动化输入插入,我按如下方式运行程序:
./practice <<< $(echo "Brian") >> result.txt
我知道有多种方法可以将字符串重定向到程序的 STDIN,例如
echo "Brian" | ./practice >> result.txt
但它们都会生成以下输出:
Enter your name: your name is: Brian
我想要的是看到下面的输出:
Enter your name: Brian
your name is: Brian
我希望重定向的字符串出现在文件的输出中,就在行程序需要用户交互之后。
有什么建议么?
答案1
像这样试试?
cout << "Enter your name: ";
cin >> name;
cout << name << endl;
cout << "your name is: " << name << endl;
这是我编译后的样子:
$ echo "foo" | ./a.out
Enter your name: foo
your name is: foo
笔记:
好久没用过C++了!