【问题标题】:Password in c++ | Deleting a character after printing itc++中的密码|打印后删除字符
【发布时间】:2012-10-07 10:06:39
【问题描述】:

当我们在网站上输入密码时,我们会看到 * 或 .而不是字符。如何用 c++ 实现这一点。假设我试图通过标准输入输入密码,同时我将它存储在一个字符数组中并删除用户输入的字符并输出 *。我想删除字符是这里的技巧。但是我们如何在通过标准输出打印字符后删除它。

【问题讨论】:

  • 你不应该首先打印字符。
  • 我没有打印字符。当我输入字符时,屏幕上是否可见?我只想删除该字符并打印一个 *。
  • 你的操作系统是什么?你使用什么库?
  • 不需要输出*。以 unix-terminal 方式执行,不显示任何内容,因此无法从屏幕阅读中猜出长度。

标签: c++ passwords stdout password-protection


【解决方案1】:

这取决于操作系统和相关库(C++ 标准没有定义与此相关的任何内容)。

在 Linux 上,您可以使用 ncursesreadline 库(在终端上)。如果编写 GUI 应用程序,您的工具包(例如 Qt)会提供相关的小部件。

【讨论】:

    【解决方案2】:

    在这个页面C++ password in console你可以找到答案。他们使用conio.h 库,但在此页面中间有一个更好适用于 Windows 的解决方案。

    【讨论】:

      【解决方案3】:

      使用_getch()(标题<conio.h>)读取密钥,保存/处理它,并打印'*'字符而不是它。不过,<conio.h> 仅适用于 Windows afaik。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-12-24
        • 1970-01-01
        • 2012-04-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多