我正在尝试制作一个 C++ 程序来读取密码。我将程序制作为 cout *
,而不是我写的字符,但我的问题是当我想删除字符时,因为它们是错误的。
示例:
我的固定密码是12345
如果我进入1235
程序将显示****
,我必须删除最后一个字符。将其从字符串中删除很简单,但我希望最后一个*
从控制台中消失,就像您介绍 Windows 密码时一样。
可能吗?如果是,有人可以解释一下吗?
问问题
22537 次
6 回答
9
输出退格字符 '\b' 可能有助于将输出点向后移动。
具体来说,输出字符串 "\b \b" 应该清除最后一个字符输出。
于 2012-11-18T12:59:59.867 回答
3
printf("\b ");
该语句肯定有效,因为在光标返回一个字符后,上面printf语句中给出的空格将覆盖控制台输出上的打印字符。
于 2015-02-01T10:18:28.483 回答
1
当我使用 putch 函数(来自 conio.h )写信给控制台来模拟退格键时
std::cout << '\b';
或者
printf("\b ");
不工作我必须写:
cout << '\b' << " " << '\b';
或者
putch('\b');
putch(' ');
putch('\b');
于 2016-01-10T11:21:53.870 回答
0
尝试退格 \b 或删除整行并再次打印。
于 2012-11-18T12:58:43.677 回答
0
简单地将'\b'
字符写入 stdout std::cout<<"\b"
。如果您使用 cpp 或printf("\b")
纯 C
于 2012-11-18T13:07:20.370 回答
0
我最近遇到了同样的事情,使用\b
was** 将光标向后移动** 但它没有删除 char (或 * )。我意识到之后您输入的下一个字符\b
将替换(要删除的字符)。所以,我想出了这样的事情
printf(“\b \b”);
使用space key
after\b
将替换要删除的字符,然后再次使用 the\b
将使您再次回到一个位置(到错误字符所在的位置,但这次字符将不存在)这样您的输出看起来会很流畅。希望对你有帮助
于 2021-12-17T00:08:37.323 回答