Estou automatizando a compilação e a execução de programas C ++ (+100 programas), que alguns deles exigem interação com o usuário.
Aqui está uma amostra do programa C ++ que requer que o usuário insira uma string:
#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;
}
Aqui, o que eu preciso é compilá-lo, executá-lo e redirecionar a saída do programa para outro arquivo:
g++ -std=c++11 -o practice practice.cpp
Para automatizar a inserção de entrada, executo o programa da seguinte forma:
./practice <<< $(echo "Brian") >> result.txt
Eu sei que existem diferentes maneiras de redirecionar uma string para o STDIN do programa como
echo "Brian" | ./practice >> result.txt
Mas todos eles geram a seguinte saída:
Enter your name: your name is: Brian
O que eu quero é ver abaixo a saída:
Enter your name: Brian
your name is: Brian
Eu quero que a string redirecionada apareça na saída do arquivo, logo após o programa de linha requerer interação com o usuário.
Alguma sugestão?