如果我有如下命令行:
foo arg1 arg2 << HEREDOC
line1
line2
HEREDOC在foo中,我如何从heredoc获取值?
int main( char *argv[] )
{
string arg1=argv[1];
string arg2=argv[2];
string heredoc= ?
}发布于 2012-08-27 04:09:19
heredoc文档只是将内容重定向到stdin中。因此,您可以使用:
string str;
while (getline(cin, str))
cout << str << endl;发布于 2012-08-27 04:08:35
在这里,文档是进行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);
}https://stackoverflow.com/questions/12133468
复制相似问题