C:如何知道当前输入中是否有\ b

时间:2012-12-17 01:00:22

标签: c input

美好的一天,你怎么知道输入字符串中是否有退格(\ b)?因为我知道,我只是将光标向后移动,擦掉最近写的\ b字符。我怎么知道那里有\ b? Tnx

1 个答案:

答案 0 :(得分:2)

您可以使用strchr查找字符串中的任何字符。也就是说,您通常不会在输入中看到退格,因为您的终端(tty)将处于 cooked 模式(而不是 raw 模式),这意味着内核将是处理一行中的退格,直到你点击返回,然后整个(编辑过的)字符串将传递给你的程序。

像shell这样的程序将tty置于原始模式,这样他们就可以进行更广泛的编辑(通常是完整的Emacs或类似vi的编辑)。当你从shell启动一个程序(比如你自己的程序)时,它首先将它重新置于熟化模式。