私は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 ++を使用していません!