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语言编程中实现输入密码回显星号相关推荐

  1. c语言case后接printf,C编程中switch。case 问题

    int main() { int imonth; printf("请输入月份:\n"); scanf_s("%d",&imonth,2); switch ...

  2. 【C语言】取余%操作在编程中的重要作

    0.做个假设:有一个五位数:12345--> 第一类必知小知识点:除法/--去掉尾数(或:顺序取数) ①去掉最后4位数字(即取首数): 12345 /10000=1.×××× ②去掉最后3位数字 ...

  3. c语言反斜杠,掌握C++编程中反斜杠续行符的使用方法

    1) 用在宏定义中: #define CV_ARE_SIZES_EQ(mat1, mat2) \ ((mat1)->rows == (mat2)->rows && (mat ...

  4. mysql中无穷大如何表示_编程中无穷大常量的设置技巧

    如果问题中各数据的范围明确,那么无穷大的设定不是问题,在不明确的情况下,很多程序员都取0x7fffffff作为无穷大,因为这是32-bit int的最大值.如果这个无穷大只用于一般的比较(比如求最小值 ...

  5. 解释java程序中的异常机制_Java编程中的异常机制

    本文旨在以初学者的角度来学习Java异常的知识,尽量简单,一些细枝末节的知识不会讲述,但不影响对知识的掌握. (比如try-catch可以嵌套,不太会这么用) 1.什么是异常 我们先举个例子 int ...

  6. java中封装的好处_编程中封装的作用/优点

    最近学习了Java三大特性中的封装,所以在这里总结一下自己堆封装的理解和简介,给大家做出参考. 什么是封装(Encapsulation): 封装(Encapsulation)是面向对象方法的重要原则, ...

  7. python中for循环流程图_Python编程中的for循环语句学习教程

    Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串. 语法: for循环的语法格式如下: for iterating_var in sequence: statements(s) ...

  8. [转载] 解析Java的JNI编程中的对象引用与内存泄漏问题

    参考链接: Java对象如何存储在内存中 JNI,Java Native Interface,是 native code 的编程接口.JNI 使 Java 代码程序可以与 native code 交互 ...

  9. jni jvm 内存泄漏_解析Java的JNI编程中的对象引用与内存泄漏问题

    JNI,Java Native Interface,是 native code 的编程接口.JNI 使 Java 代码程序可以与 native code 交互--在 Java 程序中调用 native ...

  10. 解析Java的JNI编程中的对象引用与内存泄漏问题

    JNI,Java Native Interface,是 native code 的编程接口.JNI 使 Java 代码程序可以与 native code 交互--在 Java 程序中调用 native ...

最新文章

  1. winform调用webservice增删查改_教你分别用数据库与云函数实现“增删查改”
  2. springmvc教程--快速入门教程
  3. Citrix Director
  4. 使用jupyter notebook连接服务器进行远程写代码
  5. (1)QlikView概要
  6. boost中bind的使用
  7. 取文字_把这4个字母输入word,会得到一段神秘文字,承载着一段历史
  8. 贝壳反击浑水做空报告 股价上涨近6%
  9. Android开发笔记(一百六十一)NFC近场通信
  10. 颜维伦暗示Sun将与英特尔合作研发芯片
  11. typescript之hasOwnProperty
  12. ubuntu 安装php 扩展和查看扩展包
  13. 三维空间坐标系变换——旋转矩阵
  14. 透视条件(Condition)技术
  15. java中的StringBuffer类
  16. php web helloworld,webim_server.php
  17. 计算机基础常用英语,计算机常用基础英语
  18. 五子棋、Emacs计算器
  19. android ui开发知乎,实现知乎app的主界面效果
  20. PRA006/PRA010 开发板,Quartus Altera JTAG 配置,以及常见故障解决

热门文章

  1. chatgpt赋能python:Python迭代:如何用Python迭代优化你的程序?
  2. [IOS/翻译]Media Layer
  3. 基于python的几种中文分词-词性获取
  4. 1.参考文献格式未满行直接换行
  5. 时序图 Sequence Diagrams
  6. 一招教你下载网页里的音乐或资源文件
  7. 关于ANSI/ESD S20.20:2021新版标准转换的说明
  8. Python 学习笔记-第9讲:面向对象练习-猜拳游戏
  9. 【技术应用】模型微调:如何利用深度学习框架进行模型微调?
  10. 用 Python 带你看各国 GDP 变迁