标准IO练习及思维导图

1、完成标准io的单字符、字符串、格式化、模块化实现两个文件的拷贝;

#include <myhead.h>
typedef struct sockaddr_in addr_in_t;
typedef struct sockaddr addr_t;
typedef struct sockaddr_un addr_un_t;
int main(int argc, const char *argv[])
{
	FILE* rfp = fopen(argv[1],"r");
	if(NULL == rfp){
		perror("fopen err:");
		return -1;
	}
	//字符拷贝
	FILE* wfp = fopen("zifu.c","w");
	if(NULL == wfp){
		perror("zifufopen err:");
		return -1;
	}
	printf("0\n");
	while(1){
		char ch = fgetc(rfp);
		if(ch == EOF)break;
		fputc(ch,wfp);
	}
	printf("1\n");
	//字符串拷贝
	FILE* ps = fopen("zifuchuan.c","w");
	char arr[12] = "";
	if(NULL == ps){
		perror("zifuchuanfopen err:");
		return -1;
	}
	fseek(rfp,0,SEEK_SET);
	while(1){
		char*res = fgets(arr,sizeof(arr),rfp);
		if(res == NULL)break;
		fputs(arr,ps);
	}
	printf("2\n");
	//格式拷贝
	FILE* pf = fopen("geshi.c","w");
	if(NULL == pf){
		perror("geshifopen err:");
		return -1;
	}
		fseek(rfp,0,SEEK_SET);
	while(1){
		char ch;
		int s = fscanf(rfp,"%c",&ch);
		if(s==EOF)break;
		fprintf(pf,"%c",ch);
	}
	printf("3\n");
	//Mo_Kuai拷贝
	FILE* fr = fopen("mokuai.c","w");
	if(NULL == pf){
		perror("mokuaifopen err:");
		return -1;
	}
	fseek(rfp,0,SEEK_SET);
	while(1){
		int res = fread(arr,sizeof(arr),1,rfp);
	//	if(res == )break;
		if(feof(rfp))break;
		fwrite(arr,sizeof(arr),1,fr);
	}
	fclose(fr);
	fclose(rfp);
	fclose(wfp);
	fclose(ps);
	fclose(pf);
	return 0;
}


2、实现注册和登录功能,将注册账号和密码存储到文件中,登录时遍历文件如果存在就登录成功否则登录失败

#include <myhead.h>
typedef struct sockaddr_in addr_in_t;
typedef struct sockaddr addr_t;
typedef struct sockaddr_un addr_un_t;
typedef struct {//定义账号密码结构体
	char zhanghao[20];
	char mima[20];
}deng_lu;
int main(int argc, const char *argv[])
{
	FILE* zfd = fopen("shujuku.txt","a");
	FILE* dfd = fopen("shujuku.txt","r");
	deng_lu yong_hu,shu_ju;//用于接受读取文件中的用户密码
	while(1){
	printf("请选择操作\n");
	printf("\t1、登录\n");
	printf("\t2、注册\n");
	printf("\t3  tuichu\n");
	int a;
	scanf("%d",&a);

	if(a==2){  //注册功能
		printf("请输入账号和密码中间以空格隔开\n");
		scanf("%s %s",yong_hu.zhanghao,yong_hu.mima);
		fseek(dfd,0,SEEK_SET);
		int t=1;
		while(!feof(dfd)){
			fread(&shu_ju,sizeof(deng_lu),1,dfd);
			if(strcmp(shu_ju.zhanghao,yong_hu.zhanghao)==0){
				printf("用户已存在\n");t=0;break;
			}}
		if(t==1){
			fwrite(&yong_hu,sizeof(deng_lu),1,zfd);
			fflush(zfd);
			printf("注册成功\n");
		}}
	else if(a==1){ //登录功能
			//fread(&yong_hu,sizeof(deng_lu),1,0);
		printf("请输入账号和密码中间以空格隔开\n");
		scanf("%s %s",yong_hu.zhanghao,yong_hu.mima);
		int s=0;
		fseek(dfd,0,SEEK_SET);
		while(1){
			int c = fread(&shu_ju,sizeof(deng_lu),1,dfd);
			//printf("%s %s\n",shu_ju.zhanghao,shu_ju.mima);
			if(c==0)break;
			if(strcmp(shu_ju.zhanghao,yong_hu.zhanghao)==0&&strcmp(shu_ju.mima,yong_hu.mima)==0){
				printf("登陆成功\n");
				s=1;break;
		}}
		if(s==0){printf("用户不存在或密码错误\n");}
	}
	else if(a==3){
		return 0;
	}
	else{
		printf("不存在该功能\n");
	}
	}
	fclose(zfd);
	fclose(dfd);
	return 0;
}

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

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

相关文章

Kafka-设计思想-2

一、消息传递语义 现在我们对生产者和消费者的工作方式有了一些了解&#xff0c;让我们讨论一下Kafka在生产者和消费者之间提供的语义保证。 1、最多发送一次&#xff1a;会造成数据丢失 2、至少发送一次&#xff1a;会造成数据重复消费 3、只发送一次&#xff1a;我们想要的效…

docker 部署 vscode 远程开发环境(Go,Java)

1. 前言&#xff1a; 构建一个远程开发环境&#xff0c;一般来说开个linux云服务器是最好的&#xff0c;但是这里使用 docker 来搭建&#xff0c;docker 意味着更省资源&#xff0c;可以直接在一个 linux 主机上去设置 准备 一个安装了 docker 的主机&#xff0c;最好是linux&…

几何完备的3D分子生成/优化扩散模型 GCDM-SBDD - 评测

GCDM 是一个新的 3D 分子生成扩散模型&#xff0c;与之前的 EDM 相比&#xff0c;GCDM 优化了其中的图神神经网络部分&#xff0c;使用手性敏感的 SE3 等变神经网络 GCPNET 代替了 EDM 中的 EGNN&#xff0c;让节点间消息传递、聚合根据手性不同而进行。本文对 GCDM-SBDD&#…

制造企业数字化转型顶层规划案例(55页满分PPT)

基于集团的战略和运营特点&#xff0c;数字化转型应如何考虑&#xff1f; 在集团的战略和运营特点基础上进行数字化转型&#xff0c;需要实现业务多元化&#xff0c;整合资源和流程&#xff0c;推动国际化拓展&#xff0c;实施差异化战略&#xff0c;并通过数据驱动决策&#…

WPF开发一个语音转文字输入软件(一)

本文探索的Demo地址: https://gitee.com/lishuangquan1987/try_win32 https://github.com/lishuangquan1987/try_win32 后续会把他当做一个开源项目来维护 需求 开发一个软件&#xff0c;能够让用户说话来进行文字输入。具体如下&#xff1a; 像腾讯电脑管家那样的悬浮球悬浮…

Py之pygetwindow:pygetwindow的简介、安装和使用方法、案例应用之详细攻略

Py之pygetwindow&#xff1a;pygetwindow的简介、安装和使用方法、案例应用之详细攻略 目录 pygetwindow的简介 pygetwindow的安装和使用方法 pygetwindow的案例应用 1、使用了Windows系统打开了记事本应用程序&#xff0c;其窗口标题为“无标题 - 记事本” 2、Window对象…

STM32学习笔记---RTC

目录 一、什么是RTC 二、如何配置RTC 1、标准实时时钟部分(万年历部分) 1.1 时钟源分类 1.2 RTC时钟源的选择 1.3 精密校正 1.4 异步7位预分频器 1.5 粗略校正 1.6 同步15位分频 1.7 日历寄存器 1.8 RTC的初始化与配置 1.9 程序设计 2、闹钟部分 2.1 闹钟的初始化…

Python酷库之旅-第三方库Pandas(155)

目录 一、用法精讲 706、pandas.DatetimeTZDtype类 706-1、语法 706-2、参数 706-3、功能 706-4、返回值 706-5、说明 706-6、用法 706-6-1、数据准备 706-6-2、代码示例 706-6-3、结果输出 707、pandas.Timedelta.asm8属性 707-1、语法 707-2、参数 707-3、功能…

信息学CCF CSP-J/S 2024常见问题汇总,低年级考生重点关注

摘要 随着2024年CSP-J/S初赛的临近&#xff0c;各省报名要求细则陆续公布。为了帮助广大考生和家长准确了解各省政策&#xff0c;自主选拔在线团队特为汇总整理全国各省CSP-J/S2024认证相关问题&#xff0c;希望可以帮助各位考生更好的备考&#xff01; CCF CSP-J/S 2024 认证…

Android平台RTSP|RTMP播放器PK:VLC for Android还是SmartPlayer?

好多开发者&#xff0c;希望在Android端低延迟的播放RTMP或RTSP流&#xff0c;本文就目前市面上主流2个直播播放框架&#xff0c;做个简单的对比。 VLC for Android VLC for Android 是一款功能强大的多媒体播放器&#xff0c;具有以下特点和功能&#xff1a; 广泛的格式支持…

PDF-XChange PRO v10.4.2.390 x64 已授权中文特别版

PDF-XChange PRO是一款功能强大的PDF编辑和查看软件&#xff0c;PDF-XChange PRO 一个多合一的PDF解决方案。这是Tracker Software的三个最佳应用程序的套件&#xff1a;PDF-XChange Editor Plus&#xff0c;PDF-Tools和PDF-XChange Standard。使用 PDF-XChange Editor Plus&am…

vector的深入剖析与底层逻辑

前言&#xff1a; 上篇我们谈到vector的概念&#xff0c;使用&#xff0c;以及相关接口的具体应用&#xff0c;本文将对vector进行深入剖析&#xff0c;为读者分享其底层逻辑&#xff0c;讲解其核心细节。 上篇链接&#xff1a; 初始vector——数组的高级产物-CSDN博客 一.…

CDGA|数据治理:如何让传统行业实现数据智能

在当今这个数字化时代&#xff0c;数据已成为推动各行各业转型升级的关键力量。对于传统行业而言&#xff0c;如何从海量、复杂的数据中挖掘价值&#xff0c;实现“数据智能”&#xff0c;成为了提升竞争力、优化运营效率、创新业务模式的重要途径。本文将探讨数据治理如何助力…

【文献及模型、制图分享】干旱区山水林田湖草沙冰一体化保护与系统治理——基于土地退化平衡视角

文献介绍 目标明晰、统筹兼顾、干预适度是山水林田湖草沙冰一体化保护与系统治理的客观要求。基于土地退化平衡&#xff08;LDN&#xff09;视角&#xff0c;构建涵盖双重对象、双重法则、双重原则、指标体系、价值取向的理论框架&#xff0c;并以天山北坡城市群为例&#xff…

Flume抽取数据(包含自定义拦截器和时间戳拦截器)

flume参考网址&#xff1a;Flume 1.9用户手册中文版 — 可能是目前翻译最完整的版本了https://flume.liyifeng.org/?flagfromDoc#要求&#xff1a; 使用Flume将日志抽取到hdfs上&#xff1a;通过java代码编写一个拦截器&#xff0c;将日志中不是json数据的数据过滤掉&#xf…

模拟退火算法最常见知识点详解与原理简介控制策略

章节目录 模拟退火算法简介与原理 算法的基本流程与步骤 关键参数与控制策略 模拟退火算法的应用领域 如何学习模拟退火算法 资源简介与总结 一、模拟退火算法简介与原理 重点详细内容知识点总结 1. 模拟退火算法简介 模拟退火算法&#xff08;Simulated Annealing, SA&#x…

blender分离含有多个动作的模型,并导出含有材质的fbx模型

问题背景 笔者是模型小白&#xff0c;需要将网络上下载的fbx模型中的动作&#xff0c;分离成单独的动作模型&#xff0c;经过3天摸爬滚打&#xff0c;先后使用了blender&#xff0c;3d max&#xff0c;unity&#xff0c;最终用blender完成&#xff0c;期间参考了众多网络上大佬…

Spring Boot框架下大创项目流程自动化

1系统概述 1.1 研究背景 随着计算机技术的发展以及计算机网络的逐渐普及&#xff0c;互联网成为人们查找信息的重要场所&#xff0c;二十一世纪是信息的时代&#xff0c;所以信息的管理显得特别重要。因此&#xff0c;使用计算机来管理大创管理系统的相关信息成为必然。开发合适…

DETR[端到端目标检测](论文复现)

DETR[端到端目标检测](论文复现) 本文所涉及所有资源均在传知代码平台可获取 文章目录 DETR[端到端目标检测](论文复现)概述模型主体框架演示效果核心逻辑使用方式部署方式数据准备概述 在目标检测需要许多手工设计的组件,例如非极大值抑制(NMS),基于人工经验生成的先验…

【Trulens框架】用TruLens 自动化 RAG 应用项目评估测试

前言&#xff1a; 什么是Trulens TruLens是面向神经网络应用的质量评估工具&#xff0c;它可以帮助你使用反馈函数来客观地评估你的基于LLM&#xff08;语言模型&#xff09;的应用的质量和效果。反馈函数可以帮助你以编程的方式评估输入、输出和中间结果的质量&#xff0c;从而…