鱼C论坛

 找回密码
 立即注册
查看: 2276|回复: 6

c语言实现输入密码时的隐藏输入

[复制链接]
发表于 2020-6-20 08:59:57 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
就比如输入密码时看到的都是****,我的代码可以隐藏,但是当输入错时想退格就出现问题了,应该是if(ch[i] == 8)那里不,麻烦鱼油们看一下吧[/size
]

  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<conio.h>
  4. int main(void)
  5. {   
  6.         char ch[30];   
  7.         int i=0;
  8.         while(1)   
  9.         {        
  10.                 ch[i] = getch();  
  11.         if(ch[i] == '\r')
  12.                 {      
  13.                         break;  
  14.             }
  15.                 if(ch[i] == 8)//这里我想判断如果输入的是删除键‘Backspace"就在终端输入框里面退去一个*,但是我这个是错的,不能实现
  16.                 {
  17.                         if(i>=1)
  18.                                 i--;
  19.                 }
  20.                 else
  21.                 {
  22.                         printf("*");  
  23.                 }   
  24.         }
  25.         return 0;
  26. }
复制代码

麻烦鱼油们看一下
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-6-20 09:00:36 | 显示全部楼层
应该是if(ch == 8)那里不对,该怎么改呢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-20 09:02:24 | 显示全部楼层
唉,代码缩进乱了,再发一遍

  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<conio.h>
  4. int main(void)
  5. {   
  6.         char ch[30];   
  7.         int i=0;
  8.         while(1)   
  9.         {        
  10.                 ch[i] = getch();  
  11.                 if(ch[i] == '\r')
  12.                 {      
  13.                         break;  
  14.                  }
  15.                 if(ch[i] == 8)
  16.                 {
  17.                         if(i>=1)
  18.                                 i--;
  19.                 }
  20.                 else
  21.                 {
  22.                         printf("*");  
  23.                 }   
  24.         }
  25.         return 0;
  26. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-20 09:04:36 | 显示全部楼层
小甲鱼的铁粉 发表于 2020-6-20 09:02
唉,代码缩进乱了,再发一遍

我记得 conio 和 stdio 混用会出问题的来着?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-20 09:05:34 | 显示全部楼层
永恒的蓝色梦想 发表于 2020-6-20 09:04
我记得 conio 和 stdio 混用会出问题的来着?

额,其实这里不用conio也可以
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-20 09:06:08 | 显示全部楼层
永恒的蓝色梦想 发表于 2020-6-20 09:04
我记得 conio 和 stdio 混用会出问题的来着?

那个退格怎么弄呀
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-21 09:27:02 | 显示全部楼层
你不觉得无论你怎么输入,i都为0吗?i怎么可能>=1。i--又是啥?你定义了输入任何字符都用ch[0]接收。每输入一次,就会覆盖它。当然,每次输入都会打印一个*,这是你代码,但不代表,里面接受的字符有这么多个。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-8-6 02:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表