在linux终端中以非规范模式使用退格的简单方法是什么?
这是代码的一部分,当我设置标志时:
struct termios old_tio, new_tio;
/* get the terminal settings for stdin */
tcgetattr(STDIN_FILENO, &old_tio);
/* we want to keep the old setting to restore them a the end */
new_tio = old_tio;
/* disable canonical mode (buffered i/o) and local echo */
new_tio.c_lflag &=(~ICANON );/*& ~ECHOE );*/
/* set the new settings immediately */
tcsetattr(STDIN_FILENO,TCSANOW,&new_tio);
for(;1;) {
c = getchar();
switch(c) {...}
}
当我按退格键时,我得到了一个
^?
。 但我需要删除最后一个符号..
谢谢。
答案 0 :(得分:1)
我不认为这是可能的。根据{{1}}手册页(强调我的):
在非规范模式下,输入立即可用(无需用户 必须键入行分隔符字符,并禁用行编辑。
此外,如果您的程序立即收到您键入的每个字符,它又如何被“带走”?
答案 1 :(得分:0)
在您的linux终端中执行此操作并像往常一样进行编码,它不会显示^?当你使用退格键时。
您也可以在.profile中将其添加为永久。
stty erase ^?