关于 getch 的使用

#include <string.h>
#include <stdio.h>
#include <conio.h>

void password(char *p)
{
 int i = 0;
 char ch = '0';

 while(1)
 {
  ch = getch();

  // 回车确定
  if(ch == '/r') // if(ch == 13)
  {
   // 设置'/n'作为字符串的结束标志
   p[i] = '/0';
   break;
  }
  else if( ch == '/b' ) //else if( ch == 8 )
  {
   // 刚才输入的不算, 所以退格
   if(i != 0)
   {
    i--;

    // 退格清除
    printf("/b /b");
   }
   continue;
  }
  else
  {
   // 保存正确结果, 并回显'*'
   p[i] = ch;
   printf("*");
  }
  i++;
 }// end while

}

void main(void)
{
 char passwd[20] = "";

 printf("please :");
 password(passwd);
 
 printf("/n");

 int i = 0;
 while(1)
 {
  if( (passwd[i]=='/0')||(passwd[i]=='/n') )
  {
   // 把最后一位结束位的'/n'置为'/0'
   passwd[i]='/0';

   break;
  }

  // 输出
  printf("%c",passwd[i]);
  i++;
 }

 // 比较是否相等
 if( !strcmp(passwd, "123456") )
 {
  printf("/nok.../n");
 }
 else
 {
 
  printf("/nno.../n");
 }
 

 // 按任意键继续
 printf("/npress anyone continue ... /n");
 getch();

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值