如何在C ++控制台中删除已写入的字符

时间:2012-11-18 12:54:12

标签: c++

我正在尝试制作一个C ++程序来读取密码。 我让程序变成了*,而不是我写的字符,但我的问题是我想删除字符,因为它们错了。
示例: 我的常密码是12345
如果我输入1235,程序将显示****,我必须删除最后一个字符。从字符串中删除它很简单,但我想让最后一个*从控制台中消失,就像你向你介绍Windows密码时那样。
 可能吗?如果是,有人可以解释一下吗?

5 个答案:

答案 0 :(得分:6)

输出退格符'\ b'可能有助于将输出点移回。

具体来说,输出字符串“\ b \ b”应该删除最后一个字符输出。

答案 1 :(得分:1)

printf("\b ");

这句话肯定有效,因为在光标返回一个字符后,上面 printf 语句中给出的空格将覆盖控制台输出上的打印字符。

答案 2 :(得分:1)

当我使用putch函数(来自conio.h)写入控制台来模拟退格键时 简单

std::cout << '\b';

printf("\b ");

不起作用 我必须写:

cout << '\b' << " " << '\b';

putch('\b');
putch(' ');
putch('\b');

答案 3 :(得分:0)

尝试退格\ b或删除整行并再次打印。

答案 4 :(得分:0)

'\b'字符写入stdout std::cout<<"\b"。如果您使用cpp或printf("\b")用于纯C