2017-02-12 13 views
0

私は、このプログラムのコマンドを含む私のvoid(Commandという名前の)コマンドを呼び出しています。私は通常、次のように呼び出します:Command("kill me")最初のパラメータはstd::stringですが、単純なコンソールで呼び出す必要があります。私が最初にやったときに動作しますが、うまく動作せず、時々私のループに入れたcoutを無視します。ここに私のコードは次のとおりです。ここでdo whileループで無作為にGetlineが無視される

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

まあ、あなたのメインとCmdInputには2つのゲットライン関数があります。あなたの2番目の入力を待っていると思います。

関連する問題