我编写了一个c程序,为什么程序不能读取已保存的账户密码信息呢,求大佬帮忙

就是我文本里已经保存有了两个个用户名和密码,但输入第二个用户时,显示该账号不存在,但是如果在运行时注册了用户,却能显示该账号是存在的,球球大佬给小弟一个主意

//注册函数
int zhuce()
{
	FILE* fp;
	char name[30];//用户名
	char n[10];//密码
	int c;
	while(1)
	{
	  printf("注册高级用户,请输入1,注册普通用户,输入0\n");
	  printf("请输入:");
	  scanf("%d",&c);
	  if(c==0)
	  {
         printf("请输入要创建的用户名(不得超过30个字符):");
	     scanf("%s",name);
	     printf("请输入6位纯数字密码:");
	     scanf("%s",n);
	     if((fp=fopen("zhuce.txt","w+"))==NULL)
		 {
		 printf("文件打开失败");
		 return 0;
		 }
	     fprintf(fp,"%s\t%s\n",name,n);
	     fclose(fp);
	     printf("\n用户创建成功!!!\n");
	     return 1;
	  }
	  else if(c==1)
	  {
         printf("请输入要创建的用户名(不得超过30个字符):");
	     scanf("%s",name);
	     printf("请输入6位纯数字密码:");
	     scanf("%s",n);
	     if((fp=fopen("super-user.txt","w+"))==NULL)
		 {
		 printf("文件打开失败");
		 return 0;
		 }
	     fprintf(fp,"%s\t%s\n",name,n);
	     fclose(fp);
	     printf("\n用户创建成功!!!\n");
	     return 2;

	  }

      

    }
}

int Land(int a)//通过输入密码来判断是否为管理者,密码正确即可
{
    FILE* fp1;
	FILE* fp2;
	char name[30];//账号
	char n[10];//密码
	char zhang[30];//
	char mi[10];//
	int b;
	if(a==1)
	{
		printf("注册普通用户完毕,请登录\n");

	}
	if((fp1=fopen("zhuce.txt","r+"))==NULL)
	{
		printf("打开文件失败");
	}

	if(a==2)
	{
		printf("注册高级用户完毕,请登录\n");
	}
	if((fp2=fopen("super-user.txt","r+"))==NULL)
	{
		printf("打开文件失败");
	}
	printf("登录高级用户输入1,登录普通用户输入0\n");
	printf("请输入:");
	scanf("%d",&b);
	if(b==0)
	{
        fscanf(fp1,"%s\t%s\n",zhang,mi);//从文件中读取已注册的账号密码
	    printf("请输入用户名:");
	    scanf("%s",name);
	    printf("请输入密码:");
	    scanf("%s",n);
	    if(strcmp(name,zhang)==0)
		{
		    if(strcmp(n,mi)==0)
				return 0;	
		}
	}
	if(b==1)
	{
        fscanf(fp2,"%s\t%s\n",zhang,mi);//从文件中读取已注册的账号密码
	    printf("请输入用户名:");
	    scanf("%s",name);
	    printf("请输入密码:");
	    scanf("%s",n);
	    if(strcmp(name,zhang)==0)
		{
		    if(strcmp(n,mi)==0)
				return 0;	
		}       
	}
	else if(a==0)
		return -1;

 

那就是逻辑有点问题,可以单步调试跟一下代码

读文件的地方没有贴出来。注册好像没问题。

fscanf(fp2,"%s\t%s\n",zhang,mi);//从文件中读取已注册的账号密码

这行程序没错误,但是逻辑有问题,您读取文件需要遍历文件中的每一行。否则只能读第一行。也就是第一个注册的用户

您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!

速戳参与调研>>>https://t.csdnimg.cn/Kf0y