2014-01-09 85 views
0

我一直在构建一个shell,现在我决定实现echo函数。然而,无论我尝试了多少,它都没有返回(字面意思,没有任何内容,只是空白)。我浏览了大量不同的参考文献,但大多数字符串都没有包含空格,我通常会这样做。C++子串/字符串操作

编辑:全局变量,确实没有意义,并且被放在那里以便直接复制/粘贴到我正在编写的shell中,这很依赖它们。

#include <iostream> 
#include <string> 

using namespace std; 
static string argument; 

string echo(string echoarg) 
{ 
    string echoreturn = echoarg.substr(4); 
    return echoreturn; 
} 

int main() 
{ 
    string argument; 
    cin >> argument; 
    cout << echo(argument); 
    return 0; 
} 
+0

'echoarg'没有用任何值初始化。 – 2014-01-09 05:19:20

+2

这两个全局都没有意义。 – chris

+0

你究竟传递了什么? – woolstar

回答

7

不,您的字符串将不包含空格,因为cin >>停在第一个空格处。

尝试

getline(cin, argument); 

代替。

+0

好吧,这是有道理的。这实际上解释了很多,谢谢。 –