1

次のようなコマンドラインがある場合:

foo arg1 arg2 << HEREDOC
  line1
  line2
HEREDOC

fooで、ヒアドキュメントから値を取得するにはどうすればよいですか?

int main( char *argv[] )
{
  string arg1=argv[1];
  string arg2=argv[2];

  string heredoc= ?
}
4

2 に答える 2

1

ヒアドキュメントは、ものをにリダイレクトするだけstdinです。したがって、次を使用できます。

string str;
while (getline(cin, str))
    cout << str << endl;
于 2012-08-26T20:09:19.200 に答える
1

ヒアドキュメントは、IOリダイレクトを行うためのさらに別の方法です。シェルコマンドは基本的に行line1line2入れ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);
}
于 2012-08-26T20:08:35.050 に答える