我最近制作了一个程序,使用getch()
来掩盖输入的密码。但是只要输入正确的代码,它就会立即访问,而无需等待按下回车键。应该做些什么改变?此外,Ubuntu中是否允许getch()
?如果没有,可以使用什么替代方案?
我的代码看起来像这样。我已经在不同的功能中提供了默认密码。
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;
}
答案 0 :(得分:2)
getpass
功能可能有所帮助。
答案 1 :(得分:2)
您可以使用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
中定义。
答案 2 :(得分:1)
我的建议是谨慎使用getch()。 <conio.h>
是一个非常古老的库,经常从操作系统更改为操作系统。在许多情况下,read
是getch
的替代方案。
见