在做课设时,因为在windows上写了一个输入密码时屏幕显示为***
的函数,但是在移植到linux系统上时却有问题,提示有错误。
上网搜索,有人说getch()
函数的头文件是curses.h
,还有人说是conio.h
, 但是在ubuntu系统中都不能使用,再次搜索发现getch()函数并非c标准库函数,所以可能在其他系统中不支持。
因此找到了getpass()
这一函数,实现在linux上密码隐藏输入的问题。其所在头文件为<unistd.h>
。
getpass()
函数的返回值为所输入字符串的首地址,参数可以为想要在屏幕上显示的提示信息。(看到这里感到很惊奇,在c语言中竟然还有和python中差不多的函数,参数可以是提示信息!!!)
而且该函数同样也支持删除已输入的错误字符的功能,确实减少了编程时的麻烦^_^.
代码如下:
#include <stdio.h>
#include <unistd.h>
int main (void)
{
char *ch;//返回值应为字符串首地址
ch = getpass("Please input the password:\n");
printf("password: %s",ch);
return 0;
}