0

这个想法

扫描用户输入的密码并显示**********代替P@$$w00r_D

解释代码

while循环内继续使用扫描字符getch()并将它们放入数组password[]中,直到用户按下return

编码

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

#define TRUE 1 
#define P_MAX 25

int main(int argc, char* argv[]) {
   char password[P_MAX], ch;
   int i = 0;

   puts("Enter the password [MAX 25]: ");
   while (TRUE) {
      if (i < 0) {
         i = 0;
      }//end if
      ch = getch();

      if (ch == 13)//return
         break;
      if (ch == 8) // BACKSPACE
      {
         putch('b');
         putch(NULL);//Overwrite that character by NULL.
         putch('b');
         i--;//Decrement Current Track of Character. (i)
         continue;
      }//end if
          password[i++] = ch;
          ch = '*';
      putch(ch);
   }//end while

   printf("\nPassword Entered : %s", password);//test
   getch();
return 0;
}//end main

在 Unix 机器上编译

[ar.lnx@host Documents] $ gcc 115.c -o x
115.c:2:18: fatal error: conio.h: No such file or directory
compilation terminated.
[ar.lnx@host Documents] $

这段代码在 Windows 上运行良好,但在 Unix 上不行。有什么帮助吗?

4

0 回答 0