Итак, я пытаюсь достичь, это вызов команд, которые находятся в моей команде void (named 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, что происходит, когда я пытаюсь использовать его:
Я просто не понимаю, что случилось с моим контуром.
Любая помощь приветствуется, спасибо.
Вы пробовали [каждый шаг вашей программы, шаг за шагом, с вашей резиновой уткой] (https://en.wikipedia.org/wiki/Rubber_duck_debugging)? –