C ++: пользовательский ввод дает нежелательное поведение - PullRequest
2 голосов
/ 24 января 2020

Когда я использую обычные функции std::cin или std::cin.get() или std::getline(), я получаю нежелательное (но понятное) поведение.

Когда вы, например, используете клавиши со стрелками для перемещения назад, вы не двигаетесь назад, а вводите что-то вроде «^ [[D» в консоль.

Есть ли способ сделать функцию ввода std более похожей, скажем, на среду терминала Python?

Заранее спасибо!

1 Ответ

3 голосов
/ 24 января 2020

Нет, вы не можете сделать это со стандартной библиотекой. Единственное приближение - вывод символа возврата \b и надежда на то, что он правильно работает в среде пользователя.

Вам нужно будет использовать системные API или библиотеки, такие как readline или ncurses.

...