我知道有很多类似的问题,但我找不到足够明确的答案。
我正在写一些类似于C中的原始shell的东西。我不断地询问用户输入命令,我处理这些命令。要阅读一行,我使用fgets()
。它的工作非常好(我每次都必须删除\n
),但是如果我想在键入内容时移动光标,则将原始密钥代码放入控制台。我不仅不能使用向上和向下箭头键来获取以前的命令,我也无法更正任何拼写错误而不删除所有的退格键,直到输入错误然后再输入东西。
使用scanf()
时会发生同样的情况,因此不是罪魁祸首。有趣的是,当我尝试使用Windows时,它运行正常。另外,正如我所说,例如退格键实际上删除了字符......
我知道我可以使用ncurses
,但我会找到另一个优雅的解决方案...
答案 0 :(得分:1)
您需要一个像readline
这样的图书馆
不要纠缠于“便携式密码”
您可以使用Conditional Inclusion
与不同平台兼容。