JokerLLLiu 2023-12-28 18:57 采纳率: 60%
浏览 8

【C语言】在写学校的题的时候遇到了问题

img


这个测试用例通过了,但是提交的时候报错,网站不支持查看错误示例,求解

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-12-28 20:24
    关注

    【相关推荐】



    • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/7522414
    • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:【c语言】输入一个整数数组,实现一个函数, 来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分, 所有偶数位于数组的后半部分。
    • 你还可以看下c语言参考手册中的 c语言-内存模型与数据竞争
    • 您还可以看一下 尹成老师的C语言系列之 堆、堆排序与字符串强化课程中的 堆与堆排序小节, 巩固相关知识点
    • 除此之外, 这篇博客: C语言实现可写入文件的账号密码登录系统,密码输入时掩盖,登录界面菜单选择,更改密码系统,课设必备。中的 4.登录系统 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
      void Login()
      {
      	Users a, b;//同理,a是用来给用户输入的,b是用来是水的(从文件中读取到b中,用b和a匹配比较)
      
      	FILE* pf = fopen("users.dat", "rb");//以只读的方式打开文件
      	if (!pf)//如果读取失败
      	{
      		printf("%s\n", strerror(errno));//上面有讲过~
      		return;
      	}
      	printf("欢迎来到登录界面!\n");
      	Sleep(1000);
      
      	fread(&b, sizeof(Users), 1, pf);//先从文件中读取一个用户试试水
      
      	printf("请输入账号>>");
      	scanf("%s", a.id);
      
      	while (1)
      	{
      		if (!strcmp(a.id, b.id))//在文件中找到了与用户输入相同的id
      		{
      			break;
      		}
      		else
      		{
      			if (!feof(pf))//没读到文件末尾,继续读取文件中的id到b中
      			{
      				fread(&b, sizeof(Users), 1, pf);//继续从文件中读取用户信息进b,直到在文件中找到一个和a的信息相同的
      			}
      			else//读到文件末尾了,没有找到与用户输入相同的账号
      			{
      				printf("此账号不存在!请重新输入!\n");
      				Sleep(500);
      				fclose(pf);
      				pf = NULL;
      				return;
      			}
      		}
      	}
      	do
      	{
      		printf("请输入密码>>");
      		Getpwd(a.pwd);//获取密码,在下面会讲
      		if (!strcmp(a.pwd, b.pwd))//输入的密码与文件中的相同
      		{
      			printf("\n登录成功!欢迎使用!\n");
      			Sleep(500);
      			fclose(pf);//用完当然要把文件关啦
      			pf = NULL;//置空,避免野指针
      			return;
      		}
      		else
      		{
      			printf("\n密码输入错误,请重新输入\n");
      		}
      	} while (strcmp(a.pwd, b.pwd));
      }

      大概思路就是用户先输入账号(id),接着b从文件中读取用户,直到找到与用户输入id相同的,然后就是输入密码判断密码对不对咯。   里面用到了一个库函数strcmp,判断字符串是不是一样的,如果一样则返回0,不一样则返回一个非0值。


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 12月28日