c语言中回显,C语言编程中实现输入密码回显星号
C语言编程中实现输入密码回显星号
众所周知,一个良好的密码输入程序是在用户输入密码时不显示密码本身,只回显星号。
或者,在安全性要求更高的某些程序中,什么都不显示。那么,在C语言中如何实现它呢?
getc()和getchar()函数想必大家都经常用到,但它们都在输入的同时显示输入内容,并由回车终止输入。
为了不显示输入内容,我们调用另外一个函数getch(),它包含在头文件中。
该函数可以在输入的同时不显示输入内容,并在输入完成后不需回车而自动终止输入。
与此同时,该头文件中还包含另外一个函数getche(),它和getch()功能相同,
唯一的区别是输入的同时显示输入的内容。本文我们只用到getch();
一、输入密码回显星号
#include #include
#define MAX_STR_LEN 32
char passwd[MAX_STR_LEN] = {0};
char *GetPasswd(void)
{
char c;
int i = 0;
int len = MAX_STR_LEN-1;
while ((c=getch()) != '/r')
{
passwd[i] = c;
putchar('*');
i++;
if (i >= len)
{
break;
}
}
return passwd;
}
int main(void)
{
char *dispstr = NULL;
dispstr = GetPasswd();
printf("/nthe password is : %s/n", dispstr);
return 0;
}
二、输入密码不回显
与回显星号的代码基本相同,只是去掉显示那行代码。
#include #include
#define MAX_STR_LEN 32
char passwd[MAX_STR_LEN] = {0};
char *GetPasswd(void)
{
char c;
int i = 0;
int len = MAX_STR_LEN-1;
while ((c=getch()) != '/r')
{
passwd[i] = c;
// putchar('*');
i++;
if (i >= len)
{
break;
}
}
return passwd;
}
int main(void)
{
char *dispstr = NULL;
dispstr = GetPasswd();
printf("/nthe password is : %s/n", dispstr);
return 0;
}
c语言中回显,C语言编程中实现输入密码回显星号相关推荐
- c语言case后接printf,C编程中switch。case 问题
int main() { int imonth; printf("请输入月份:\n"); scanf_s("%d",&imonth,2); switch ...
- 【C语言】取余%操作在编程中的重要作
0.做个假设:有一个五位数:12345--> 第一类必知小知识点:除法/--去掉尾数(或:顺序取数) ①去掉最后4位数字(即取首数): 12345 /10000=1.×××× ②去掉最后3位数字 ...
- c语言反斜杠,掌握C++编程中反斜杠续行符的使用方法
1) 用在宏定义中: #define CV_ARE_SIZES_EQ(mat1, mat2) \ ((mat1)->rows == (mat2)->rows && (mat ...
- mysql中无穷大如何表示_编程中无穷大常量的设置技巧
如果问题中各数据的范围明确,那么无穷大的设定不是问题,在不明确的情况下,很多程序员都取0x7fffffff作为无穷大,因为这是32-bit int的最大值.如果这个无穷大只用于一般的比较(比如求最小值 ...
- 解释java程序中的异常机制_Java编程中的异常机制
本文旨在以初学者的角度来学习Java异常的知识,尽量简单,一些细枝末节的知识不会讲述,但不影响对知识的掌握. (比如try-catch可以嵌套,不太会这么用) 1.什么是异常 我们先举个例子 int ...
- java中封装的好处_编程中封装的作用/优点
最近学习了Java三大特性中的封装,所以在这里总结一下自己堆封装的理解和简介,给大家做出参考. 什么是封装(Encapsulation): 封装(Encapsulation)是面向对象方法的重要原则, ...
- python中for循环流程图_Python编程中的for循环语句学习教程
Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串. 语法: for循环的语法格式如下: for iterating_var in sequence: statements(s) ...
- [转载] 解析Java的JNI编程中的对象引用与内存泄漏问题
参考链接: Java对象如何存储在内存中 JNI,Java Native Interface,是 native code 的编程接口.JNI 使 Java 代码程序可以与 native code 交互 ...
- jni jvm 内存泄漏_解析Java的JNI编程中的对象引用与内存泄漏问题
JNI,Java Native Interface,是 native code 的编程接口.JNI 使 Java 代码程序可以与 native code 交互--在 Java 程序中调用 native ...
- 解析Java的JNI编程中的对象引用与内存泄漏问题
JNI,Java Native Interface,是 native code 的编程接口.JNI 使 Java 代码程序可以与 native code 交互--在 Java 程序中调用 native ...
最新文章
- winform调用webservice增删查改_教你分别用数据库与云函数实现“增删查改”
- springmvc教程--快速入门教程
- Citrix Director
- 使用jupyter notebook连接服务器进行远程写代码
- (1)QlikView概要
- boost中bind的使用
- 取文字_把这4个字母输入word,会得到一段神秘文字,承载着一段历史
- 贝壳反击浑水做空报告 股价上涨近6%
- Android开发笔记(一百六十一)NFC近场通信
- 颜维伦暗示Sun将与英特尔合作研发芯片
- typescript之hasOwnProperty
- ubuntu 安装php 扩展和查看扩展包
- 三维空间坐标系变换——旋转矩阵
- 透视条件(Condition)技术
- java中的StringBuffer类
- php web helloworld,webim_server.php
- 计算机基础常用英语,计算机常用基础英语
- 五子棋、Emacs计算器
- android ui开发知乎,实现知乎app的主界面效果
- PRA006/PRA010 开发板,Quartus Altera JTAG 配置,以及常见故障解决