1
標準輸入。如果我有我的命令行如:C++讀取定界符
foo arg1 arg2 << HEREDOC
line1
line2
HEREDOC
Foo中,如何從定界符值?
int main(char *argv[])
{
string arg1=argv[1];
string arg2=argv[2];
string heredoc= ?
}
標準輸入。如果我有我的命令行如:C++讀取定界符
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重定向的又一種方式。 您的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);
}
我得到'終止叫做拋出 '的std :: logic_error' 的實例以後有什麼():basic_string的:: _ S_construct NULL不valid' – francoisrv
@francoisrv這可能是因爲您主不正確地聲明。它需要是'int main(int argc,char * argv [])'。 (雖然有其他正確的聲明) –
@francoisrv這很奇怪。我只是試過了: - ? – cnicutar