IO进程线程第一天

1.完成注册登录功能:
做个小菜单,功能1:是注册功能,输入注册账户和注册密码,将账户和密码写入文件中
功能2:是登录功能,提示并输入登录账户和登录密码,并用其遍历文件中的每一组账户和密码,如果匹配成功,则登录成功,如果全部不匹配则提示登录失败

#include <myhead.h>

int main(int argc, const char *argv[])
{
	int menu=0;
	while(1)
	{
		system("clear");
		printf("\t\t*************XXXX登录界面*****************\n");
		printf("\t\t**************1.注册****************\n");
		printf("\t\t**************2.登录****************\n");
		printf("\t\t**************0.退出****************\n");
		printf("请输入操作选项:");
		scanf("%d",&menu);
		getchar();
		switch(menu)
		{
			case 1:
				{
					//注册
					FILE *fp=NULL;
					if((fp=fopen("meun.txt","a"))==NULL)
					{
						perror("fopen");
						return -1;
					}
					char account[128]="";
					char passwd[128]="";
					printf("请输入账号:");
					fscanf(stdin,"%s",account);
					printf("请输入密码:");
					fscanf(stdin,"%s",passwd);
					fputs(account,fp);
					fputs(passwd,fp);
					fputc('\n',fp);
					fclose(fp);
				}
				break;
			case 2:
				{
					//登录 
					char buf[128]="";
					char account[128]="";
						char passwd[128]="";
						FILE *fp=NULL;
						if((fp=fopen("meun.txt","r"))==NULL)
						{
							perror("fopen");
							return -1;
						}
					printf("请输入账号:");
					fscanf(stdin,"%s",account);
					strcat(buf,account);
					printf("请输入密码:");
					fscanf(stdin,"%s",passwd);
					strcat(buf,passwd);
					strcat(buf,"\n");
					char rbuf[128];
					printf("buf=%s\n",buf);
					while(1)
					{
						//遍历文件中的账号和密码,如果一致,表示登录成功
						char *ptr=fgets(rbuf,sizeof(rbuf),fp);
						
						if(strcmp(rbuf,buf)==0)
						{
							printf("登录成功\n");
							//登录成功的页面
							break;
						}
						if(ptr==NULL)
						{
							printf("登录失败\n");
							break;
						}
					}
				fclose(fp);	
				}
				break;
			case 0:
				{
					goto END;
				}
			default:printf("你输入的选项有误,请重新输入\n");	
				//输入任意键按回车确认
				printf("输入任意键按回车确认\n");
				while(getchar()!='\n');


		}


	}
END:
	return 0;
}

运行结果:

============================

2.使用fgets统计给定文件的行数

#include <myhead.h>

int main(int argc, const char *argv[])
{
	FILE *fp=NULL;
	if((fp=fopen(argv[1],"r"))==NULL)
	{
		perror("fopen error");
		return -1;
	}

	char buf[128]="";
	int line=0;
	while(1)
	{
		char *ptr=fgets(buf,sizeof(buf),fp);
		if(buf[strlen(buf)-1]=='\n')
			line++;
		if(ptr==NULL)
		break;
		
	}
	printf("line=%d\n",line);
	fclose(fp);
	return 0;
}

运行结果:

3.使用fputs和fgets完成两个文件的拷贝

#include <myhead.h>

int main(int argc, const char *argv[])
{
	if(argc!=3)
	{
		printf("input file error\n");
		printf("usage:./a.out srcfile destfile\n");
		return -1;
	}
	FILE *fp=NULL;
	FILE *fp1=NULL;
	if((fp=fopen(argv[1],"r"))==NULL)
	{
		perror("fopen error");
		return -1;
	}
	if((fp1=fopen(argv[2],"w"))==NULL)
	{
		perror("fopen error");
		return -1;
	}
	char buf[128]="";

	while(1)
	{
		char *ptr=fgets(buf,sizeof(buf),fp);
		if(ptr==NULL)
			break;
		fputs(buf,fp1);

	}
	fclose(fp);
	fclose(fp1);
	return 0;
}

运行结果:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/393559.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

应用回归分析:岭回归

岭回归&#xff0c;也称为Tikhonov正则化&#xff0c;是一种专门用于处理多重共线性问题的回归分析技术。多重共线性是指模型中的自变量高度相关&#xff0c;这种高度的相关性会导致普通最小二乘法&#xff08;OLS&#xff09;估计的回归系数变得非常不稳定&#xff0c;甚至无法…

二维码的颜色怎么改变?轻松3步修改二维码样式

怎么修改二维码的颜色呢&#xff1f;一般我们制作的二维码或者经过系统生成的二维码大多都是黑白颜色的&#xff0c;有些小伙伴会觉得不太美观无法满足自己的使用需求。那么对于想要修改二维码样式的小伙伴&#xff0c;可以使用二维码生成器的二维码美化功能来处理&#xff0c;…

力扣 第 124 场双周赛 解题报告 | 珂学家 | 非常规区间合并

前言 整体评价 T4的dp解法没想到&#xff0c;走了一条"不归路", 这个区间合并解很特殊&#xff0c;它是带状态的&#xff0c;而且最终的正解也是基于WA的case&#xff0c;慢慢理清的。 真心不容易&#xff0c;太难了。 T1. 相同分数的最大操作数目 I 思路: 模拟 c…

【机构vip教程】Charles(1):Charles的介绍及安装

Charles Charles 是在 Mac &#xff08;Charles是跨平台的 &#xff09;下常用的网络封包截取工具&#xff0c;在做移动开发、测试时&#xff0c;我们为了调试与服务器端的网络通讯协议&#xff0c;常常需要截取网络封包来分析。Charles是一个HTTP代理服务器,HTTP监视器,反转代…

白酒:制曲工艺的微生物多样性及其作用

在云仓酒庄豪迈白酒的制曲工艺中&#xff0c;微生物多样性是一个关键要素。曲是白酒生产中的重要配料&#xff0c;它由小麦、麸皮等原料制成&#xff0c;经过微生物的发酵和生长而形成。微生物的多样性和相互作用对曲的品质和白酒的口感具有重要影响。 首先&#xff0c;微生物多…

【大厂AI课学习笔记】【2.2机器学习开发任务实例】(3)数据准备和数据预处理

项目开始&#xff0c;首先要进行数据准备和数据预处理。 数据准备的核心是找到这些数据&#xff0c;观察数据的问题。 数据预处理就是去掉脏数据。 缺失值的处理&#xff0c;格式转换等。 延伸学习&#xff1a; 在人工智能&#xff08;AI&#xff09;的众多工作流程中&#…

anomalib1.0学习纪实-续2:三个文件夹

为了读懂程序&#xff0c;有三个最重要的文件夹&#xff0c;如下图&#xff1a; 正好对应四个类&#xff0c;如下图&#xff1a; 三个类的来源如下图所示&#xff1a; 注意&#xff0c;MVTec是个大类&#xff0c;里面用到了这里的第四个类MVTecDataset&#xff0c;代码如下。…

Java入门教程:介绍、优势、发展历史以及Hello World程序示例

Java入门教学 java语言介绍 Java是由Sun Microsystems公司(已被Oracle公司收购)于1995年5月推出的Java面向对象程序设计语言和Java平台的总称。由James Gosling和同事们共同研发&#xff0c;并在1995年正式推出。 Java分为三个体系&#xff1a; JavaSE&#xff08;J2SE&…

沁恒CH32V30X学习笔记06---串口dma接收+空闲中断组合接收数据

DMA 控制器提供 18 个通道,其中 DMA1 包含 7 个通道,DMA2 包含 11 个通道,每个通 道对应多个外设请求,通过设置相应外设寄存器中对应 DMA 控制位 通道映射 dma1 dma2 示例代码 bsp_usart_it.c /** bsp_usart_it.c** Created on: 2024年2月18日* Author: admin*/…

快排——OJ题

&#x1f4d8;北尘_&#xff1a;个人主页 &#x1f30e;个人专栏:《Linux操作系统》《经典算法试题 》《C》 《数据结构与算法》 ☀️走在路上&#xff0c;不忘来时的初心 文章目录 一、颜色划分1、题目讲解2、算法原理3、代码实现 二、排序数组1、题目讲解2、算法原理3、代码…

创建菜单与游戏页面

bootstrap地址 Bootstrap v5 中文文档 Bootstrap 是全球最受欢迎的 HTML、CSS 和 JS 前端工具库。 | Bootstrap 中文网 (bootcss.com) 创建导航栏组件 web--src--components--NavBar.vue <!-- html --> <template><nav class"navbar navbar-expand-lg n…

设计模式复习

单例模式 确保一个类最多只有一个实例&#xff0c;并提供一个全局访问点。 &#xff08;某个类的对象有且仅有一个&#xff0c;单例的对象充当的是全局变量的角色&#xff0c;为什么在C里面不直接使用全局变量&#xff0c;而是使用单例来代替全局变量&#xff0c;因为如果直接…

【C++学习手札】多态:掌握面向对象编程的动态绑定与继承机制(初识)

&#x1f3ac;慕斯主页&#xff1a;修仙—别有洞天 ♈️今日夜电波&#xff1a;世界上的另一个我 1:02━━━━━━️&#x1f49f;──────── 3:58 &#x1f504; ◀️ ⏸ ▶️ ☰ &am…

删除链表的倒数第N个节点

删除链表的倒数第N个节点 给你一个链表&#xff0c;删除链表的倒数第 n 个结点&#xff0c;并且返回链表的头结点。 进阶&#xff1a;你能尝试使用一趟扫描实现吗&#xff1f; 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5], n 2 输出&#xff1a;[1,2,3,5] 示例…

信息安全认证 | CISP证书怎么样?值得考吗?

HCIE考证研究所的朋友们&#xff0c;新年快乐&#xff01; 今天给大家说说CISP证书&#xff0c;新的一年祝大家逢考必过啊~ 01 考注册信息安全工程师证书的用处 CISP证书可作为学识和技能证明&#xff1b;求职、任职、晋升、加薪的资格凭证&#xff1b;用人单位招聘、录用劳动…

Python函数(一)

目录 一、定义函数 &#xff08;一&#xff09;向函数传递信息 &#xff08;二&#xff09;实参和形参 二、传递实参 &#xff08;一&#xff09;位置实参 &#xff08;二&#xff09;关键字实参 &#xff08;三&#xff09;默认值 &#xff08;四&#xff09;等效的函…

【监控】spring actuator源码速读

目录 1.前言 2.先搂一眼EndPoint 3.EndPoint如何被注入 4.EndPoint如何被暴露 4.1.如何通过http暴露 4.2.如何通过jmx暴露 5.EndPoint是怎么实现监控能力的 6.知道这些的意义是什么 1.前言 版本&#xff1a;spring-boot-starter-actuator 2.6.3 阅读源码一定要带着疑…

【C++学习手札】多态:掌握面向对象编程的动态绑定与继承机制(深入)

&#x1f3ac;慕斯主页&#xff1a;修仙—别有洞天 ♈️今日夜电波&#xff1a;世界上的另一个我 1:02━━━━━━️&#x1f49f;──────── 3:58 &#x1f504; ◀️ ⏸ ▶️ ☰ &am…

VQ30 广告点击的高峰期(order by和limit的连用)

代码 select hour(click_time) as click_hour ,count(hour(click_time)) as click_cnt from user_ad_click_time group by click_hour order by click_cnt desc limit 1知识点 order by和limit的连用&#xff0c;取出所需结果 YEAR() 返回统计的年份 MONTH() 返回统计的月份 D…

渗透测试练习题解析 4(CTF web)

1、[GXYCTF2019]禁止套娃 1 考点&#xff1a;git 泄露 进入靶场后只有一串文字&#xff0c;源代码、抓包之类的都没有敏感信息出现&#xff0c;直接用 kali 的 dirsearch 扫描 发现存在 .git 目录&#xff0c;猜测应该是源码泄露&#xff0c;使用 GitHack 扒一下源码&#xff0…