如何逃脱序列' \ b'在C ++中工作?替代显示方法?

时间:2015-05-27 01:40:43

标签: c++

所以我输出了一串各种ASCII字符。此程序涉及修改此字符串的一部分,然后重新显示。

我没有清除整个屏幕并重新显示所有产生不必要闪烁效果的内容,而是决定移动光标,然后只重写已更改的字符。

我用SetConsoleCursorPosition移动光标,这是windows.h的一部分。

然而,一旦我尝试并尝试某些东西,它就会将前面的所有文本推到前面;另一种不受欢迎的影响。

为了解决此问题,我尝试了各种形式的' cout<<" \ b&#34 ;;'删除旧的,未修改的字符。但是没有任何影响,或者它实际上增加了一个空间,这显然不是一个理想的效果。

我在某处读到,为了删除实际上必须使用两次转义序列的不需要的字符,例如:' \ b \ b',因为第一个将光标移回空格,第二个用空格('')或类似的东西覆盖前面的字符。

' \ B \ B'毫不奇怪,也没有工作。或者这可能令人惊讶,我实际上并不知道。

我的问题是:如何删除不需要的字符?或者更好的是,如何覆盖已用新文本输出的文本?

编辑:我道歉,我正在运行Windows 7

1 个答案:

答案 0 :(得分:0)

我认为使用SetConsoleMode函数清除ENABLE_INSERT_MODE可能有所帮助。它应该阻止控制台插入字符并向前推送旧字符。