Второй + вызов std :: cin >> пропускается. Каждый подобный топи c, который я видел, не помогает - PullRequest
0 голосов
/ 30 апреля 2020

Если я введу что-то, что мой коммутатор не хочет принимать (у меня на самом деле 4 случая), код не остановится для cin >> во второй раз. У меня была предыдущая версия этого кода вызова меню () прямо перед перерывом; в случае по умолчанию, но это также приводило к конечному l oop. Это и , это и некоторые другие не помогли мне. Кажется, я не могу понять, почему Син не хочет, чтобы ему звонили.

void menu()
{
    bool running = true;
    int answer = 0;
    std::vector<Player> players;
    Dealer river;
    while (running) 
    {
        std::cout << "1. Start Round\t2. Add Player\t3. Remove Player\t4. Exit\n\n";
        std::cin.clear();
        std::cin >> answer;
        std::cin.ignore(std::numeric_limits <std::streamsize> ::max(), '\n');
        std::cout << answer;
        switch (answer) {
        case 1:
            //doesn't matter
            break;
        default:
            std::cout << "Invalid input.\n";
            break;
        }
    }
}
...