2024.2.18作业

1、给定任意文件计算行数

#include<stdio.h>
#include<string.h>
#include<stdlib.h>int main(int argc, char const *argv[])
{//判断终端输入的文件if(argc!=2){puts("input file error");puts("usage:./a.out filename");return -1;}//以只读方式打开文件FILE *fp=NULL;int line=0;if((fp=fopen(argv[1],"r"))==NULL){perror("fopen error");return -1;}char buf[10];while(1){fgets(buf,sizeof(buf),fp);for(int i=0;i<strlen(buf);i++){if(buf[i]=='\n')line++;}if(strlen(buf)==0)break;memset(buf,0,sizeof(buf));}printf("line=%d\n",line);//关闭文件fclose(fp);return 0;
}

2、使用fgetc、fputc完成两个文件的拷贝

#include<stdio.h>
#include<string.h>
#include<stdlib.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 *srcfp=NULL;FILE *destfp=NULL;//以只读的方式打开源文件if((srcfp=fopen(argv[1],"r"))==NULL){perror("fopen error");return -1;}//以只写的方式打开目标文件if((destfp=fopen(argv[2],"w"))==NULL){perror("fopen error");return -1;}char buf[10]="";while(1){//将源文件拷贝到目标文件中fgets(buf,sizeof(buf),srcfp);fputs(buf,destfp);if(strlen(buf)==0)break;memset(buf,0,sizeof(buf));}printf("copy success!\n");return 0;
}

3、完成注册登录功能

做个小菜单,功能1是注册功能,输入注册账户和注册密码,将账户和密码写入文件中

功能2是登录功能,提示并输入登录账户和登录密码,并用其遍历文件中的每一组账户和密码,如果匹配成功,则登录成功,如果全部不匹配则提示登录失败

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(int argc, const char *argv[])
{int menu = 0;while(1){//system("clear");        //执行终端指令printf("\t\t======XXX登录界面============\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;char buf[20]="";if((fp=fopen("./id.txt","a"))==NULL){perror("fopen error");return -1;}printf("please enter the id:");fgets(buf,sizeof(buf),stdin);fputs(buf,fp);memset(buf,0,sizeof(buf));}break;case 2:{//登录功能char buf1[20]="";printf("please enter the id:");fgets(buf1,sizeof(buf1),stdin);FILE *fp=NULL;if((fp=fopen("./id.txt","r"))==NULL){perror("fopen error");return -1;}char buf2[20]="";while(1){if(fgets(buf2,sizeof(buf2),fp)==NULL)break;if(strcmp(buf1,buf2)==0){printf("success!\n");return 0;}memset(buf2,0,sizeof(buf2));}}break;case 0:goto END;default:printf("您输入的功能有误,请重新输入\n");}//提示输入任意键按回车结束printf("请输入任意键按回车结束!!!\n");while(getchar() != '\n');}END:return 0;
}

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SSTI模板注入漏洞(vulhub 复现)

首先了解模板引擎&#xff1a; 模板引擎&#xff08;这里特指用于Web开发的模板引擎&#xff09;是为了使用户界面与业务数据&#xff08;内容&#xff09;分离而产生的&#xff0c;它可以生成特定格式的文档&#xff0c;利用模板引擎来生成前端的html代码&#xff0c;模板引擎…

OpenAI视频生成模型Sora的全面解析:从扩散Transformer到ViViT、DiT、NaViT、VideoPoet

前言 真没想到&#xff0c;距离视频生成上一轮的集中爆发(详见《视频生成发展史&#xff1a;从Gen2、Emu Video到PixelDance、SVD、Pika 1.0、W.A.L.T》)才过去三个月&#xff0c;没想OpenAI一出手&#xff0c;该领域又直接变天了 自打2.16日OpenAI发布sora以来&#xff0c;不…

Java+Swing+Txt实现通讯录管理系统

目录 一、系统介绍 1.开发环境 2.技术选型 3.功能模块 4.系统功能 1.系统登录 2.查看联系人 3.新增联系人 4.修改联系人 5.删除联系人 5.工程结构 二、系统展示 1.登录页面 2.主页面 3.查看联系人 4.新增联系人 5.修改联系人 三、部分代码 Login FileUtils …

算法练习-01背包问题【含递推公式推导】(思路+流程图+代码)

难度参考 难度&#xff1a;困难 分类&#xff1a;动态规划 难度与分类由我所参与的培训课程提供&#xff0c;但需 要注意的是&#xff0c;难度与分类仅供参考。且所在课程未提供测试平台&#xff0c;故实现代码主要为自行测试的那种&#xff0c;以下内容均为个人笔记&#xff0…

大模型LLM训练显存消耗详解

参考论文&#xff1a;ZeRO: Memory Optimizations Toward Training Trillion Parameter Models 大模型的显存消耗一直都是面试常见的问题&#xff0c;这次我就彻彻底底的根据论文ZeRO中的调研和分析做一次分析 显存消耗的两个部分&#xff1a;Model States&#xff08;跟模型的…

Python学习 --- 文件操作

1.文件的基础操作 --- 打开,关闭与读文件 文件的主要操作有:打开,关闭与读写 1. name 是文件的路径,要用字符串的形式来表示 2. mode 模式也要用字符串的形式来表示 3.open函数会返回一个文件对象,该文件对象指向的是被打开的文件 1.read方法在调用完之后会生成一个指…

html表格标签(下):lable标签,select标签和textara标签

html表格标签(下)&#xff1a;lable标签&#xff0c;select标签和textarea标签 lable标签 搭配 input 使用,点击 label 标签就能选中对应的单选/复选框, 能够提升用户体验。 for 属性: 指定当前 label 和哪个相同 id 的 input 标签对应 (此时点击才是有用的) 运行效果&#x…

Java集合篇之深度解析Queue,单端队列、双端队列、优先级队列、阻塞队列

写在开头 队列是Java中的一个集合接口&#xff0c;之前的文章已经讲解了List和Set&#xff0c;那么今天就来唠一唠它吧。队列的特点&#xff1a;存储的元素是有序的、可重复的。 队列的两大接口Queue vs Deque Queue 是单端队列&#xff0c;只能从一端插入元素&#xff0c;另…

微信小程序之开发会议OA项目

目录 前言 本篇目标 首页 会议 投票 个人中心 会议OA项目-首页 配置 tabbar mock工具 page swiper 会议信息 会议OA项目-会议 自定义tabs组件 会议管理 会议OA项目-投票 会议OA项目-个人中心 前言 文章含源码资源&#xff0c;投票及个人中心详细自行查看…

【Kuiperinfer】笔记01 项目预览与环境配置

学习目标 实现一个深度学习推理框架设计、编写一个计算图实现常见的算子&#xff0c;例如卷积、池化、全连接学会如何进行算子的优化加速使用自己的推理框架推理常见模型&#xff0c;检查结果是否能够和torch对齐 什么是推理框架&#xff1f; 推理框架用于对已经训练完成的模…

JavaScript中延迟加载的方式有哪些

在web前端开发中&#xff0c;性能优化一直是一个非常重要的话题。当我们开发一个页面时&#xff0c;为了提高用户的体验和页面加载速度&#xff0c;我们往往需要采用一些延迟加载的技术。JavaScript中延迟加载的方式有很多种&#xff0c;下面我将为大家详细介绍几种常用的方式。…

Spring MVC(基于 Spring4.x)基础学习

一、SpringMVC概述 二、SpringMVC的HelloWorld 三、使用RequestMapping映射请求 四、映射请求参数&请求头 五、处理模型数据 六、视图和视图解析器 七、RESTful CRUD 八、SpringMVC表单标签&处理静态资源 九、数据转换&数据格式化&数据校验 十、处理JSON:使用…