user-0 提问: 简单的登陆功能

回复:
user: user-1
content: 引用 1 楼 Kaciry 的回复:把用户名和密码写入文件时是一串，导致输出用户名的时候把密码也输出来了，怎么把他们分开？ 可以把用户名和密码放在两个文件里。 或者用简单的加密算法对密码加密，即使输出来加密之后的也没关系。

user: user-2
content: #include <stdio.h> #include <stdlib.h> #include <string.h> #define SIZE sizeof(nDate) #pragma pack(push) #pragma pack(1) typedef struct nPasseword {     char userName[11];     char userPassword[11];     struct nPasseword* next; }nDate; #pragma pack(pop) void administrator() {  } void teacherUser() {  } void normalUser() {  } void regUser(nDate* head) {     //nDate* p = (nDate*)calloc(1,SIZE);     //p->next = NULL;     nDate* p = head;     while (1)     {         printf("请输入你的新用户名(用户名为10位)\n");         scanf("%10s",p->userName);         if (strlen(p->userName)==10)         {             while(1)             {                 printf("请输入你的新密码(密码长度为10位)\n");                 scanf("%10s",p->userPassword);                 if (strlen(p->userPassword)==10)                 {                     printf("注册成功,您的用户名是%s,密码是%s\n",p->userName,p->userPassword);                     break;                 }                 else if(strlen(p->userPassword)>10)                 {                     printf("您的密码过长，请重新输入:\n");                 }                 else                 {                     printf("您的密码过短，请重新输入:\n");                 }             }             break;         }         else if ( strlen(p->userName) > 10 )         {             printf("您的用户名过长，请重新输入：\n");         }         else         {             printf("您的用户名过短，请重新输入: \n");         }     } } void writeDate(nDate* head) {     FILE *fp;     if((fp=fopen("passerword.dat","wb"))==NULL)     {         printf("can't open the file.");         exit(0);     }     else     {         nDate* curnode=head;         while(curnode!=NULL)         {             fwrite(curnode,sizeof(nDate),1,fp);             curnode = curnode->next;         }     }     fclose(fp); } nDate* read(nDate* head) {     FILE* fp;     nDate* curnode = head;     if((fp=fopen("passerword.dat","rb"))==NULL)     {         printf("file passerword.dat can't be opened");     }     else     {         while (!feof(fp))         {             nDate* nextnode=(nDate*)calloc(1,SIZE);             nextnode->next = NULL;             fread(nextnode,sizeof(nDate),1,fp);             if (!feof(fp))             {                 curnode->next = nextnode;                 curnode = nextnode;             }         }         fclose(fp);     }     return head; } int main() {     nDate* head = (nDate*)calloc(1,SIZE);     head->next = NULL;     //int administratorName = 16175211;     //int administratorPassword = 16175211;     int n;     printf("请选择：\n");     printf("1.超级权限登陆  2.教师用户登陆  3.普通用户登陆  4.用户注册  0.退出客户端\n");     scanf("%d",&n);     switch (n)     {     case 0:     {         writeDate(head);         exit(1);     }     case 1:     {         administrator();         break;     }     case 2:     {         teacherUser();         break;     }     case 3:     {         normalUser();         break;     }     case 4:     {         regUser(head);         writeDate(head);         break;     }     }     return 0; }

user: user-0
content: 引用 2楼赵4老师 的回复:#include <stdio.h> #include <stdlib.h> #include <string.h> #define SIZE sizeof(nDate) #pragma pack(push) #pragma pack(1) typedef struct nPasseword {     char userName[11];     char userPassword[11];     struct nPasseword* next; }nDate; #pragma pack(pop) void administrator() {  } void teacherUser() {  } void normalUser() {  } void regUser(nDate* head) {     //nDate* p = (nDate*)calloc(1,SIZE);     //p->next = NULL;     nDate* p = head;     while (1)     {         printf("请输入你的新用户名(用户名为10位)\n");         scanf("%10s",p->userName);         if (strlen(p->userName)==10)         {             while(1)             {                 printf("请输入你的新密码(密码长度为10位)\n");                 scanf("%10s",p->userPassword);                 if (strlen(p->userPassword)==10)                 {                     printf("注册成功,您的用户名是%s,密码是%s\n",p->userName,p->userPassword);                     break;                 }                 else if(strlen(p->userPassword)>10)                 {                     printf("您的密码过长，请重新输入:\n");                 }                 else                 {                     printf("您的密码过短，请重新输入:\n");                 }             }             break;         }         else if ( strlen(p->userName) > 10 )         {             printf("您的用户名过长，请重新输入：\n");         }         else         {             printf("您的用户名过短，请重新输入: \n");         }     } } void writeDate(nDate* head) {     FILE *fp;     if((fp=fopen("passerword.dat","wb"))==NULL)     {         printf("can't open the file.");         exit(0);     }     else     {         nDate* curnode=head;         while(curnode!=NULL)         {             fwrite(curnode,sizeof(nDate),1,fp);             curnode = curnode->next;         }     }     fclose(fp); } nDate* read(nDate* head) {     FILE* fp;     nDate* curnode = head;     if((fp=fopen("passerword.dat","rb"))==NULL)     {         printf("file passerword.dat can't be opened");     }     else     {         while (!feof(fp))         {             nDate* nextnode=(nDate*)calloc(1,SIZE);             nextnode->next = NULL;             fread(nextnode,sizeof(nDate),1,fp);             if (!feof(fp))             {                 curnode->next = nextnode;                 curnode = nextnode;             }         }         fclose(fp);     }     return head; } int main() {     nDate* head = (nDate*)calloc(1,SIZE);     head->next = NULL;     //int administratorName = 16175211;     //int administratorPassword = 16175211;     int n;     printf("请选择：\n");     printf("1.超级权限登陆  2.教师用户登陆  3.普通用户登陆  4.用户注册  0.退出客户端\n");     scanf("%d",&n);     switch (n)     {     case 0:     {         writeDate(head);         exit(1);     }     case 1:     {         administrator();         break;     }     case 2:     {         teacherUser();         break;     }     case 3:     {         normalUser();         break;     }     case 4:     {         regUser(head);         writeDate(head);         break;     }     }     return 0; }   谢谢指点

user: user-0
content: 引用 3楼自信男孩 的回复:[quote=引用 1 楼 Kaciry 的回复:] 把用户名和密码写入文件时是一串，导致输出用户名的时候把密码也输出来了，怎么把他们分开？ 可以把用户名和密码放在两个文件里。 或者用简单的加密算法对密码加密，即使输出来加密之后的也没关系。[/quote]但是用户输入用户名和密码的时候就不能匹配了

user: user-0
content: 把用户名和密码写入文件时是一串，导致输出用户名的时候把密码也输出来了，怎么把他们分开？