get_pass.c

来自「文件名:c语言深入学习必备参考例子 很多经典的c例子:高级的宏定义」· C语言 代码 · 共 54 行

C
54
字号
#include <stdio.h>
#include <conio.h>
#include <string.h>

#define BACKSPACE 8
char *get_password(const char *prompt)
 {
   static char buffer[128];

   int i = 0;
   
   char letter = NULL;

   printf(prompt);

   while ((i < 127) && (letter != '\r'))
     {
       letter = getch();

       if (letter == BACKSPACE)
         {
           if (i > 0)
            {
              buffer[--i] = NULL;  // Erase previous *
              putchar(BACKSPACE);
              putchar(' ');
              putchar(BACKSPACE);
            }
           else
             putchar(7);  // BELL
         }
       else if (letter != '\r') 
         {
           buffer[i++] = letter;
           putchar('*');
         }
     }     
   buffer[i] = NULL;
   return (buffer);
 }


void main (void)
 {
   char *password;

   password = get_password("Enter Password: ");

   if (strcmp(password, "1001"))
     printf("\nPassword Incorrect\n");
   else
     printf("\nPassword OK\n");
 }

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?