`
jafisher
  • 浏览: 57368 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

密码输入的非回显法

 
阅读更多
    最近偶然被问到一个问题,输入密码时怎么不回显输入的字符,而只显示*号。虽然只是一个小问题,但觉得有必要重视一下,个人解决方案如下:

//添加头文件
#include<conio.h>
#include<string.h>

int i = 0;
char password[10];  //数组大小自定

//当输入的不是回车符时,就把输入的字符赋给数组的第i+1个位置
while((password[i]=getch())!='\r')                        
{
  cout<<"*";  //每输入一个字符,就显示一个*号
  i++;
}

//当输入回车符时一定要把字符串结束符赋给数组最后一个位置
password[i] = '\0'; 

//当输入的字符串与设定密码一致时执行其他语句...
if(strcmp(password, "2010") == 0)
{
  ...
  ...
}

  但到这还是有个问题,我的程序可以在输入密码时可以只显示*号,但是不能倒退删除输入的字符,比如说我想输入123,但输成了132,屏幕显示的是***,我想删掉32,但显示的是******了,暂时还没找到有效的解决办法。
分享到:
评论

相关推荐

    matlab开发-passwordUI

    `passwordUI.m`可能使用了其中的一种或结合两者创建了一个密码输入对话框。 1. **GUIDE**: 通过图形化界面设计窗口布局,添加控件(如文本框、按钮),并自动生成对应的回调函数代码。 2. **函数式UI**: 使用MATLAB...

    2009_10_SQL Injection Attacks and Defense

    1. **参数化查询/预编译语句**:使用参数化查询可以确保用户输入被当作数据处理,而非SQL代码。 2. **输入验证**:对所有用户输入进行严格检查,拒绝不符合预期格式的数据。 3. **最小权限原则**:数据库用户账号...

    unix的常用命令pdf

    - 使用`passwd`命令修改口令,按照提示输入旧密码和新密码,新密码应包含字母和数字,长度通常为6-8个字符。 3. **基本命令** - **清屏**:`clear`命令用来清除屏幕上的内容。 - **显示当前目录**:`pwd`命令...

    中兴通讯 MC8331模块AT指令手册

    - **+ECHO**:命令行回显设置,控制是否显示输入的命令。 - **+VIP**:处理优先级设置,确定某些操作的优先级。 - **S0**:指令实例说明,涉及模块的初始化或复位。 - **CMGW**:短信发送指令,参数最大值范围有具体...

    操作系统实验手册

    - **密码**:851125 #### 二、实验背景及目的 - **背景**:本实验手册旨在通过一系列实验帮助学习者深入理解Linux操作系统的工作原理及其基本使用方法。Linux作为一种广泛使用的开源操作系统,在服务器、嵌入式设备...

    Dos命令大全

    usebackq - 指定新语法已在下类情况中使用: 在作为命令执行一个后引号的字符串并且 引号字符为文字字符串命令并允许在 fi 中使用双引号扩起文件名称。 sample1: FOR /F "eol=; tokens=2,3* delims=, " %i in ...

    如何编写批处理文件批处理文件批处理文件

    usebackq - 指定新语法已在下类情况中使用: 在作为命令执行一个后引号的字符串并且 引号字符为文字字符串命令并允许在 fi 中使用双引号扩起文件名称。 sample1: FOR /F "eol=; tokens=2,3* delims=, " %i in ...

Global site tag (gtag.js) - Google Analytics