저는 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++를 사용하지 않았습니다!