2016年11月29日学习总结----LinuxC实现密码输入
来源:互联网 发布:linux进程数据结构 编辑:程序博客网 时间:2024/06/05 15:27
声明:本程序转载自http://jingyan.baidu.com/article/f71d60379ab3061ab641d10e.html
#include <stdio.h>
#include <termios.h>
#include <unistd.h>
int main()
{
char passWord[20];
printf("请输入密码:\n");
getpasswd(passWord, 20);
printf("\n");
printf("你输入的密码是:%s\n",passWord);
}
/*
自己写的getch()函数,原本此函数在linux下用不了
*/
int mygetch()
{
struct termios oldt,
newt;
int ch;
tcgetattr( STDIN_FILENO, &oldt );
newt = oldt;
newt.c_lflag &= ~( ICANON | ECHO );
tcsetattr( STDIN_FILENO, TCSANOW, &newt );
ch = getchar();
tcsetattr( STDIN_FILENO, TCSANOW, &oldt );
return ch;
}
/*
获取密码
*/
int getpasswd(char* passwd, int size)
{
int c;
int n = 0;
do
{
c=mygetch();
if (c != '\n'&& c!='\r' && c!=127)
{
passwd[n] = c;
printf("*");
n++;
}
else if ((c != '\n'|c!='\r')&&c==127)//判断是否是回车或者是退格
{
if(n>0)
{
n--;
printf("\b \b");//输出退格
}
}
}while(c != '\n' && c !='\r' && n < (size - 1));
passwd[n] = '\0'; //消除一个多余的回车
return n;
}
- 2016年11月29日学习总结----LinuxC实现密码输入
- 2016年11月26日学习总结----scanf输入带空格字符串
- 2016年11月27日学习总结----阶段总结
- 2016年12月11日学习总结----阶段总结
- 2016年11月11日学习总结
- 2016年11月1日学习总结
- 2016年11月2日学习总结
- 2016年11月3日学习总结
- 2016年11月4日学习总结
- 2016年11月5日学习总结
- 2016年11月7日学习总结
- 2016年11月8日学习总结
- 2016年11月9日学习总结
- 2016年11月10日学习总结
- 2016年11月12日学习总结
- 2016年11月13日学习总结
- 2016年11月14日学习总结
- 2016年11月15日学习总结
- CentOS 7最小化安装配置
- 51nod 1029 大数除法
- localhost 127.0.0.1和本机ip三者的区别
- Spring项目打包部署( Maven Assembly插件)
- 剑指offer——面试题20:顺时针打印矩阵
- 2016年11月29日学习总结----LinuxC实现密码输入
- ubuntu12.04+mysql新环境搭建完成之后,开发代码时发现mysql.h文件找不到
- 消息队列
- SpringAOP切点配置(注解与xml配置)
- eclipse之设置快捷提示无作用的解决办法
- Sublime text 3最新版破解方法
- HTML
- C语言五子棋
- NNU_20161103_3PAT1022. D进制的A+B