I have a try 2021-04-16 17:44 采纳率: 0%
浏览 33

我编写了一个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;
  • 写回答

4条回答 默认 最新

  • bostonAlen 2021-04-16 17:47
    关注

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

    评论

报告相同问题?

悬赏问题

  • ¥15 孟德尔随机化结果不一致
  • ¥15 深度学习残差模块模型
  • ¥50 怎么判断同步时序逻辑电路和异步时序逻辑电路
  • ¥15 差动电流二次谐波的含量Matlab计算
  • ¥15 Can/caned 总线错误问题,错误显示控制器要发1,结果总线检测到0
  • ¥15 C#如何调用串口数据
  • ¥15 MATLAB与单片机串口通信
  • ¥15 L76k模块的GPS的使用
  • ¥15 请帮我看一看数电项目如何设计
  • ¥23 (标签-bug|关键词-密码错误加密)