我正在自动编译和执行 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
我希望重定向的字符串出现在文件的输出中,就在程序需要用户交互的行之后。
有什么建议么?
试试这样?
下面是编译后我这边的样子:
注意:
好久没用过 C++ 了!