次のようなコマンドラインがある場合:
foo arg1 arg2 << HEREDOC
line1
line2
HEREDOC
fooで、ヒアドキュメントから値を取得するにはどうすればよいですか?
int main( char *argv[] )
{
string arg1=argv[1];
string arg2=argv[2];
string heredoc= ?
}
ヒアドキュメントは、ものをにリダイレクトするだけstdin
です。したがって、次を使用できます。
string str;
while (getline(cin, str))
cout << str << endl;
ヒアドキュメントは、IOリダイレクトを行うためのさらに別の方法です。シェルコマンドは基本的に行line1
をline2
入れstdin
てからプログラムに入れます。
したがって、コードは次のようになります。
int main(int argc, char *argv[])
// notice that your main declaration isn't conforming to C++ standard.
// it need additional argc parameter
{
string arg1=argv[1];
string arg2=argv[2];
string heredoc_string1, heredoc_string2;
getline(cin, heredoc_string1);
getline(cin, heredoc_string2);
}