Flu sh std :: cin буфер - PullRequest
       6

Flu sh std :: cin буфер

0 голосов
/ 10 апреля 2020

У меня есть приложение, которое ожидает ввода от пользователя, чтобы выдать команду, при получении которой на экран выводится большое количество. Приложение вылетает при циклическом ожидании std::getline во второй раз. Я думаю, что это потому, что буфер заполнен или что-то. Если я жестко закодирую строку вместо чтения из std::cin, то не будет cra sh. Как мне сделать sh буфер перед чтением во второй раз, я использовал следующее, но это не работает std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');

#include <iostream>
#include <string>

int main ()
{
    while(true){
        std::string input{};
        // if string is hardcoded app works so issue is with std::cin
        // std::string input{"command_one"};
        if (!std::getline(std::cin, input))
        {
        continue;
        }
         // app does work and prints alot to screen
    }
}
...