2017-02-12 326 views
0

所以,我試圖實現的是調用包含此程序命令的無效命名(命名爲Command)。我通常會這樣稱呼它們:Command("kill me")作爲其第一個也是唯一的參數是std::string,但我想在一個簡單的控制檯中調用它們。這是我第一次運作,但它不起作用,有時忽略我放在循環中的cout。這裏是我的代碼:Getline在do while循環中的隨機時間被忽略

void Command(std::string cmd) { 
    //commands here 
} 

std::string CmdInput(std::string cmd) { 
    std::getline(std::cin, cmd); 
    Command(cmd); 
    return cmd; 
} 

do { 
    //this is in main 
    std::string cmd; 
    std::cout("-> "); 
    std::getline(std::cin, cmd); 
    CmdInput(cmd); 
} while (true); 

這裏是當我嘗試使用它會發生什麼GIF:
Image Link

我只是不明白什麼是錯我的循環。
任何幫助表示讚賞,謝謝。

+1

你有沒有嘗試過[用你的橡皮鴨一步一步地討論你的程序的每一行](https://en.wikipedia.org/wiki/Rubber_duck_debugging)? –

回答

0

那麼有兩個getline函數,一次在你的main和另一個在你的CmdInput中。所以我想它等待你的第二個輸入