我自己编了注册的.可是有 一个问题:它不能检测到有没有重复的用户名,就是可以用同一个用户名可以注册多次~帮我看下:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct registerinfo{
char name[20];
char password[18];
}reg[20];
int total=0;
void zhuce()
{
FILE *rfp;
int i;
char pass_zc[20]="",pass2[20]="";
char user_zc[20]="";
while(1)
{
printf("输入用户名\n");
gets(user_zc);
for(i=0;i<total;i++)
if (strcmp(reg[i].name,user_zc)!=0)/*就是这里有问题*/
i++;
else{
printf("用户已存在!");
return;
}
strcpy(reg[total].name,user_zc);
printf("输入口令\n");
gets(pass_zc);
printf("确认口令\n");
gets(pass2);
if (strcmp(pass_zc,pass2)!=0)
{
printf("口令不一致,重新注册\n");
continue;
}
else
{ strcpy(reg[total].password,pass_zc);
printf("注册成功\n");
if((rfp=fopen("Registerinfo.dat","a+"))==NULL)
{
printf("cannot openfile\n");
return;
}
fwrite(®[total],sizeof(struct registerinfo),1,rfp);
break;
}
}
}
main()
{ char a1[]="1------register";
char a2[]="0------out";
char a3[]="chang one:";
int i=0;
while(1)
{
printf("%s\n",a1);
printf("%s\n",a2);
printf("%s",a3);
scanf("%d",&i);
fflush(stdin);
switch(i)
{
case 1: zhuce();break;
case 0: exit(0);
default: printf("选择无效\n");
}
}
}