关于 getch 的使用

来源:互联网 发布:论坛群发软件下载 编辑:程序博客网 时间:2024/06/11 19:24

#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();

}

原创粉丝点击