在do while循环中随机时间忽略Getline

时间:2017-02-12 02:15:27

标签: c++ visual-studio dll

所以,我想要实现的是调用我的void(命名为Command)中包含该程序命令的命令。我通常会这样称呼它们:Command("kill me")作为它的第一个也是唯一的参数是std::string,但我想在一个简单的控制台中调用它们。它是我第一次这样做,但它不起作用,有时会忽略我放入循环的cout。这是我的代码:

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 个答案:

答案 0 :(得分:0)

有两个getline函数,一个在main中,另一个在CmdInput中。所以我想它等待你的第二次输入