2014-01-09 107 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

好吧,這是有道理的。這實際上解釋了很多,謝謝。 –