我是靠谱客的博主 专一水壶,最近开发中收集的这篇文章主要介绍通过fopen、fscanf函数实现账户登录,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

 实现过程:

//写一个usr.txt文档,文档中每一行的格式为:姓名 密码  例如:
//hangsan 123456
//lisi abcdef
//任务:
//要求从终端输入账户,密码;
//与文件中的账户密码比较
//如果账户不存在,则输出用户不存在
//如果账户存在,密码错误,则输出密码错误
//如果账户密码均正确,输出登录成功

#include<stdio.h>
#include<string.h>
int main(int argc, const char *argv[])
{	
	//打开一个仅读文件
	FILE *p=fopen("./usr.txt","r");
	if(p==NULL)
	{
		printf("打开失败n");
		return -1;
	}
	printf("打开usr.txt文件成功n");

	//定义两个数组存储终端输入的账户密码
	char get_name[20]={},get_password[20]={};

	//定义两个数组存储文件读取的账户密码
	char file_name[20]={},file_password[20]={};

	//定义两个标记符输入的账户密码的存在与否,为0不存在,为1存在
	int flag_name=0,flag_password=0;
	printf("请输入账户>>>");
	scanf("%s",get_name);

	//循环判断文件中是否有该账户存在
	while(1)
	{
		if(fscanf(p,"%s %s",file_name,file_password)==EOF)
		{
			flag_name=0;
			break;
		}
		if(strcmp(file_name,get_name)==0)
		{
			flag_name=1;
			break;
		}
	}

	//判断账户标记符
	if(flag_name==0)
	{
		printf("用户不存在n");
	}

	else 
	{
		printf("请输入密码>>>");
		scanf("%s",get_password);

        //循环判断密码是否正确
		while(1)
		{
			//判断是否遍历完文件中的数据
			if(fscanf(p,"%s %s",file_name,file_password)==EOF)
			{
				flag_password=0;
				break;
			}

			//判断文件中是否有相同的数据
			if(strcmp(file_password,get_password)==0)
			{
				flag_password=1;
				break;
			}

		}
		//判断密码标记符
		if(flag_password==0)
		{
			printf("密码错误n");
		}
		else
		{
			printf("登录成功n");
		}
	}

	//关闭文件
	if(fclose(p)<0)
	{
		perror("fclose");
		return -1;
	}
	printf("关闭文件成功n");

	return 0;
}

 实现效果:

 

最后

以上就是专一水壶为你收集整理的通过fopen、fscanf函数实现账户登录的全部内容,希望文章能够帮你解决通过fopen、fscanf函数实现账户登录所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(57)

评论列表共有 0 条评论

立即
投稿
返回
顶部