day2 IO

day2 IO_第1张图片day2 IO_第2张图片day2 IO_第3张图片

1 #include
  2 #include
  3 #include
  4 int do_register();
  5 int do_login();
  6 int main(int argc, const char *argv[])
  7 {
  8     char menu;
  9     while(1)
 10     {
 11         printf("\t\t=====1、注册=====\n");
 12         printf("\t\t=====2、登录=====\n");
 13         printf("\t\t=====0、退出=====\n");
 14         printf("请输入功能选项:");
 15         scanf("%c", &menu);
 16         //吸收垃圾字符
 17         while(getchar() != '\n');
 18         switch(menu)
 19         {
 20         case '1':
 21             {
 22                 do_register();
 23             }
 24             break;
 25         case '2':
 26             {
 27                 do_login();
 28             }
 29             break;
 30         case '0':
 31             exit(EXIT_SUCCESS);
 32         default:
 33             printf("您输入的功能有误请重新输入!!!\n");
 34         }
 35         printf("请输入任意键按回车清屏!!!\n");
 36         //吸收垃圾字符
 37         while(getchar() != '\n');
 38         system("clear");
 39     }                                                                             
 40     return 0;
 41 }
 42 int do_register()
 43 {
 44     FILE * wfp = NULL;
 45     char userName_reg[20];
 46     char pwd_reg[20];
 47     printf("请输入注册账号:");
 48     fgets(userName_reg, sizeof(userName_reg), stdin);
 49     printf("请输入注册密码:");
 50     fgets(pwd_reg, sizeof(pwd_reg), stdin);
 51     //避免自带的换行
 52     userName_reg[strlen(userName_reg)-1] = '\0';
 53     pwd_reg[strlen(pwd_reg)-1] = '\0';
 54     //以追加的方式打开文件
 55     if((wfp = fopen("./usr.txt", "a+")) == NULL)
 56     {
 57         perror("fopen error");
 58         return -1;
 59     }
 60     //打印到wfp所指的文件中
 61     fprintf(wfp, "%s %s\n", userName_reg, pwd_reg);                               
 62     fclose(wfp);
 63     printf("注册成功\n");
 64     return 0;
 65 }
 66 int do_login()
 67 {
 68     char userName_log[20];
 69     char pwd_log[20];
 70     char userName_reg[20];
 71     char pwd_reg[20];
 72     printf("请输入登录账号:");
 73     fgets(userName_log, sizeof(userName_log), stdin);
 74     printf("请输入登录密码:");
 75     fgets(pwd_log, sizeof(pwd_log), stdin);
 76     //避免自带的换行
 77     userName_log[strlen(userName_log)-1] = '\0';
 78     pwd_log[strlen(pwd_log)-1] = '\0';
 79     FILE *rfp = NULL;
 80     //以只读的方式打开文件
 81     if((rfp = fopen("./usr.txt", "r")) == NULL)
 82     {
 83         perror("fopen error");
 84         return -1;
 85     }
 86     while(1)
 87     {
 88         //读取usr.txt文件中的信息
 89         int res = fscanf(rfp, "%s %s", userName_reg, pwd_reg);
 90         if(res < 0)
 91         {
 92             printf("登录失败\n");
 93             fclose(rfp);
 94             return 1;
 95         }
 96         //将读取到的信息与输入的信息比较
 97         if(strcmp(userName_log,userName_reg)==0  &&  strcmp(pwd_log, pwd_reg)==0)
 98         {
 99             printf("登录成功\n");
100             fclose(rfp);
101             return 0;
102         }
103     }
104 }

day2 IO_第4张图片

你可能感兴趣的:(笔记)