C++ 怎么才能不回显的输入密码?getch、getpass的使用

方法一、getch()函数 ——  Windows环境下

头文件 #include<conio.h>

getch()函数会读取一个输入的字符,但是并不会在屏幕上显示出

# include <iostream.h> 
# include <stdio.h>
# include <conio.h>
 
int main()
{
 
    char ch;
 
    printf("请输入一个字符: ");
 
    ch = getch();    //在输入字符的时候,屏幕上并看不到输入的字符
 
    printf("输入的字符是:%c ",ch);    //输出字符
 
    return 0;
}

方法二、getpass()函数 —— Linux环境下

#include <unistd.h>

用于从控制台输入一行字符串,关闭了回显(输入时不显示输入的字符串)。

char * getpass (const char * prompt);

参数prompt为提示字符串地址。

函数返回值:输入字符串地址。

函数说明:getpass()会显示参数prompt所指的字符串,然后从/dev/tty中读取所输入的密码,若无法从/dev/tty中读取则会转从标准输入设备中读取密码。所输入的密码长度限制在128个字符,包含结束字符NULL, 超过长度的字符及换行字符/n将会被忽略。在输入密码时getpass()会关闭字符回应,并忽略一些信号如CTRL-C 或 CTRL-Z所产生的信号

#include<cstdio>
#include<unistd.h>
int main(void) 
{
    char *password;
    password = getpass("Input a password:"); /*输入密码*/
    printf("The password is: %s", password); /*显示密码*/
    return 0;  
}

getpass函数通常会与crypt加密函数一同使用

详见:https://blog.csdn.net/weixin_42073412/article/details/100139824

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值