小甲鱼的铁粉 发表于 2020-6-20 08:57:22

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

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

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
int main(void)
{   
        char ch;   
        int i=0;
        while(1)   
        {      
                ch = getch();
      if(ch == '\r')
                {      
                        break;
          }
                if(ch == 8)
                {
                        if(i>=1)//这里我是想判断是否为删除键,是的话退格,但是错了,该怎么实现退格呢
                                i--;
                }
                else
                {
                        printf("*");
                }   
        }
        return 0;
}

405794672 发表于 2020-6-21 09:28:53

正如我上个回复所说,你的密码并没有被隐藏,而是输入一个,就删除了一个。你把i赋值为0,i从来没变过,一直为0。不存在i>=1的情况。

南七 发表于 2020-6-22 08:53:55

个人感觉可以参考数组的插入与删除诶,但楼主这样的写法貌似也并麻油正经输入,因为一直都是覆盖了ch的值,i并没有变化,那个i>=1的判断始终不成立。

小甲鱼的铁粉 发表于 2020-6-22 17:31:01

南七 发表于 2020-6-22 08:53
个人感觉可以参考数组的插入与删除诶,但楼主这样的写法貌似也并麻油正经输入,因为一直都是覆盖了ch的 ...

页: [1]
查看完整版本: c语言实现输入密码时的隐藏输入