如果我有我的命令行,例如:
foo arg1 arg2 << HEREDOC
line1
line2
HEREDOC
在 foo 中,我如何从 heredoc 中获得价值?
int main( char *argv[] )
{
string arg1=argv[1];
string arg2=argv[2];
string heredoc= ?
}
这里的文档是另一种进行 IO 重定向的方法。您的 shell 命令基本上是放入行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);
}
heredoc 只是将内容重定向到stdin
. 所以你可以使用:
string str;
while (getline(cin, str))
cout << str << endl;