log_in.c

来自「一个登录的程序」· C语言 代码 · 共 60 行

C
60 行
字号
#include <stdio.h>
#include <unistd.h>
#include <string.h>
 
#define MAX_USER_NUM    5
#define MAX_USER_INFO   30
char user_list[MAX_USER_NUM][MAX_USER_INFO] = { "root:111111:0:0:0",
  "jingle:111111:1:1:1",
  "buffalo:111111:2:2:2"
};
int
main (int argc, char **argv)
{
  char buffer[30];
  char *pw;
  char *p;
  int t;
  int i;
  int n = 0;
  int pwc = 0;
  char *buf = { "Welcome~~~" };
  memset (buffer, '\0', 30);
  fprintf (stdout, "username:");
  fgets (buffer, sizeof (buffer), stdin);
  t = strlen (buffer);
  buffer[t - 1] = ':';
  pw = getpass ("password:");
  p = pw;
  pwc = strlen (p);
  strncpy (buffer + t, pw, pwc);
 
  while (n < MAX_USER_NUM)
    {
      if (strncmp ((char *) &user_list[n], buffer, t + pwc) == 0)
        {
          for (i = 0; i < 10; i++)
            {
              putchar (buf[i]);
	      fflush (stdout);
              usleep (90000);
            }
          for (i = 0; i < t - 1; i++)
            {
              printf ("%c", buffer[i]);
              fflush (stdout);
              usleep (90000);
            }
          printf ("\n");
          break;
        }
      else
        n++;
    }
  if (n == MAX_USER_NUM)
    printf ("Sorry.You're not allowed to login!\n");
 
  return 0;
}
                                                        
                                                       

⌨️ 快捷键说明

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