У меня есть приложение, которое ожидает ввода от пользователя, чтобы выдать команду, при получении которой на экран выводится большое количество. Приложение вылетает при циклическом ожидании 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
}
}