3

我最近做了一个程序,getch()用来屏蔽输入的密码。但只要输入正确的代码,它就可以访问,而无需等待按下回车键。应该做哪些改变?另外,getch()在 Ubuntu 中是否允许?如果不是,应该使用什么替代方案?

我的代码看起来像这样。我已经在不同的功能中提供了默认密码。

char pass[4];
cout << "\nEnter Administrator Password: ";
for (i = 0; i < 4; i++)
{
  pass[i] = getch();
  cout << "*";
}
for (i = 0; i < 4; i++)
{
  if(admin_pass[i] == pass[i])
    return 1;
  else
    return 0;
}
4

3 回答 3

3

您可以使用getpass()如下,

#include<stdio.h>
#include<unistd.h>
#include<string.h>


char *pass=getpass("\nEnter Administrator Password: "); 

if(strcmp(admin_pass,pass)==0) 
  return 1;
else 
  return 0;    

该函数getpass()在头文件中定义unistd.h

于 2013-04-25T18:38:11.887 回答
2

getpass功能可能会有所帮助。

于 2013-04-25T18:24:41.733 回答
1

我的建议是谨慎使用 getch() 。<conio.h>是一个非常古老的库,并且经常从操作系统更改为操作系统。在许多情况下,readgetch.

http://www.cplusplus.com/forum/articles/7312/#msg33734

于 2013-04-25T18:35:36.917 回答