2017-02-12 9 views
0

Итак, я пытаюсь достичь, это вызов команд, которые находятся в моей команде 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, что происходит, когда я пытаюсь использовать его:
Image Link

Я просто не понимаю, что случилось с моим контуром.
Любая помощь приветствуется, спасибо.

+1

Вы пробовали [каждый шаг вашей программы, шаг за шагом, с вашей резиновой уткой] (https://en.wikipedia.org/wiki/Rubber_duck_debugging)? –

ответ

0

Ну, есть две функции getline, один раз в вашей основной и другой в вашем CmdInput. Поэтому я думаю, что он ждет вашего второго входа

 Смежные вопросы

  • Нет связанных вопросов^_^