При чтении пользовательского ввода с использованием getline (cin, mystrvar) некоторые клавиши управления не работают.
Пример:
User input: abc^[[Dd
Text: abd
User input: asc
Read bytes: 7
#0: 97
#1: 98
#2: 99
#3: 27
#4: 91
#5: 68
#6: 100
Я набрал a, b, c, затем стрелку влево и d.
«Текст:», по-видимому, пишет (cout) первые три символа, затем устанавливает указатель влево и перезаписывает символ c.
«asc» - это простая функция, которая печатает длину (mystrvar.size ()) и значения ascii.
При вызове "stty -ctlecho" (system (...)) я могу использовать клавишу со стрелкой влево, но она не ограничивается моим вводом (я могу перезаписать "Ввод пользователя:") плюс контрольные коды все еще отправляются в мою программу.
Этого не происходит в Windows - я могу нормально использовать клавиши со стрелками (даже вверх / вниз для истории).
Что здесь не так?
Редактировать : Я в основном использую Fedora 15. Кажется, нет никакой разницы между lxterminal, терминал, xterm, konsole, gnome-терминал (как терминал) или bash, ksh, tcsh (как оболочка).