21xrx.com
2024-12-22 22:24:56 Sunday
登录
文章检索 我的文章 写文章
C++如何将输入的密码显示为星号
2023-06-24 11:51:22 深夜i     --     --
C++ 密码 显示 星号

在使用C++编写密码验证程序时,我们通常需要将用户输入的密码进行隐藏以保护机密性。实际上,在C++中,我们可以通过使用特定的函数来将输入的密码显示为星号。本文将介绍如何在C++中使用这些函数来达到此目的。

在C++中,我们可以使用getch()函数读取用户输入的密码并将其隐藏。getch()函数是C++标准库中的一个函数,它可以读取单个字符并将该字符从控制台中删除。对于密码输入,我们可以使用一个循环来读取每个字符并用星号来代替它们,以此来实现隐藏密码的效果。以下是示例代码:


#include <iostream>

#include <conio.h>

using namespace std;

int main()

{

  char password[20];

  int i = 0;

  cout << "Enter your password: ";

  while((password[i] = _getch()) != '\r')   // 循环读取每个字符

  {

    cout << "*";   // 用星号替代输入的字符

    i++;

  }

  password[i] = '\0';

  cout << endl << "Your password is: " << password << endl;   // 输出隐藏的密码

  return 0;

}

在上述代码中,我们首先声明了一个字符数组password和一个变量i用于记录输入的密码。然后,使用cout语句提示用户输入密码,接着使用while循环读取每个字符。在while循环内部,我们使用_getch()函数从控制台读取单个字符并将其存储在password数组中。同样,我们使用cout语句将该字符替换为星号。当用户在输入完整个密码之后,他们可以按回车键来结束输入。此时,我们使用password数组的最后一个元素来添加一个空字符,以制作一个C-style字符串,该字符串储存密码。最后,我们输出隐藏的密码。

总结而言,C++中通过使用getch()函数可以隐藏用户输入的密码。使用while循环来读取每个字符和使用cout语句来替换字符为星号。在循环结束时,我们可以使用一个空字符来关闭C-style字符串。通过这种方法,我们可以保护密码安全,防止被他人偷窥。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复