控制台程序如何让用户输入密码 关闭回显

        控制台程序输入密码涉及到关闭回显,只要关闭了回显,别的就是常规操作了。输入的密码要不要显式成星号或者别的,纯属个人喜好。

        主要用到下面几个知识:

  • tcgetattr 获取终端属性
  • tcsetattr 设置终端属性
  • ECHO 终端属性的回显
  • STDIN_FILENO 代表标准输入的文件描述符

        输完密码还要把回显打开,所以最好包装起来,这是打开或关闭回显的代码:

	bool setEcho(int fd,bool option)
	{
		int err;
		struct termios term;

		if(tcgetattr(fd,&term)==-1)
		{
			thelog<<"获得终端属性失败"<

        输入密码的代码,参数控制是否需要输入两次(一般用于设置密码):

	string inputPassword(bool repeat)
	{
		string ret;
		char buf[256];
	
		//关回显
		setEcho(STDIN_FILENO,false);
		
		while(true)
		{
			cout<<"Please input password >"<"<

        代码很简单。

        以上代码是Unix/Linux下运行的,用到了C++,但关键关键操作完全是C的。

(这里是结束)

你可能感兴趣的:(程序员造轮子(我的可重用代码),linux,控制台回显,C语言,密码输入)