Лишние символы/байты в строке, полученной черз std::getline
Подскажите пожалуйста:
Моя программа считывает ввод пользователя с помощью std::getline(std::cin, cmd).
Запустив программу, я просто нажимаю одну из клавиш со стрелками, а затем Enter. При этом у меня cmd.size() равен 3, если клавишу со стрелкой нажать 2 раза - cmd.size() равен 6, и т.д.
Как сделать так чтобы в cmd попадала итоговая введенная строка без следов её изменения в процессе ввода?
Вот весь код:
#include <iostream>
#include <string>
int main() {
std::string cmd{};
while(true) {
std::getline(std::cin, cmd);
if (std::cin.rdstate() != std::ios_base::goodbit)
{
std::cin.clear();
cmd = "";
continue;
}
if(cmd.size() == 0)
continue;
if(cmd == "exit")
{
break;
}
std::cout << std::to_string(cmd.size()) << std::endl;
}
}