文件IO知识梳理及练习

news2024/10/17 11:29:06

1> 使用fread和fwrite完成两个文件的拷贝,要求源文件和目标文件由外界输入

#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("err:");
	}
	//以写的形式打开复制生成的文件
	FILE* wfp = fopen(argv[2],"w");
	if(NULL == wfp){
		perror("err:");
	}
	char rarr="";
	while(1){
		int res = fread(&rarr,1,1,rfp);//循环读取要复制的文件的内容并赋值给ch
		if(0 == res)break;              //文件读取完毕跳出循环
		fwrite(&rarr,1,1,wfp);          // 将读取到的文件内容写入到新文件
	}
	fclose(rfp);           //关闭文件描述符
	fclose(wfp);
	return 0;
}

2> 使用fgets获取当前文件的总行数

#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("err:");
	}
	//以写的形式打开复制生成的文件
	FILE* wfp = fopen(argv[2],"w");
	if(NULL == wfp){
		perror("err:");
	}
	char rarr[20]="";   //存放读取到的数据
	int count = 0;      //计算行数
	while(1){
		char*res = fgets(rarr,sizeof(rarr),rfp);//循环读取要复制的文件的内容
		if(res==NULL)break;
		if(rarr[strlen(rarr)-1]=='\n'){  //遇到换行符,count++,统计行数
			count++;
		//	rarr[strlen(rarr)-1] = 0;
		}
		fputs(rarr,wfp);//将读取到的文件内容写入到新文件
	}
	printf("%d",count);   //输出行数
	fclose(rfp);  //关闭文件
	fclose(wfp);
	return 0;
}

3> 向文件中每一秒打印当前系统时间

#include <myhead.h>
#include<time.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[])
{
	int count = 0;  //统计行数
	time_t t_sec1;  //标记时间,实现一秒输出一次
	FILE* fp = fopen("123.txt","a");
	//获取文件中的行数,实现下次此运行后不从零开始
	FILE* rfp = fopen("123.txt","r");
	while(1){
		char ch = fgetc(rfp);
		if(ch == '\n')count++;
		if(ch==EOF)break;
	}

	while(1){
		time_t t_sec = time(NULL);
		struct tm *tm_t=localtime(&t_sec);
		if(t_sec1!=t_sec){
			//将时间输出到终端
			printf("%2d  %4d-%2d-%2d  %2d:%2d:%2d\n",count,tm_t->tm_year+1900,tm_t->tm_mon+1,tm_t->tm_mday,tm_t->tm_hour,tm_t->tm_min,tm_t->tm_sec);
			//将文件输出到文件
			fprintf(fp,"%2d  %4d-%2d-%2d  %2d:%2d:%2d\n",count,tm_t->tm_year+1900,tm_t->tm_mon+1,tm_t->tm_mday,tm_t->tm_hour,tm_t->tm_min,tm_t->tm_sec);
			//每输出一次行数加一
			count++;
			//手动刷新缓存区
			fflush(fp);
		}
		//使标记时间等于最新的时间
		t_sec1 = t_sec;
	}
	return 0;
}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用OpenCV实现基于FisherFaces的人脸识别

引言 随着人工智能技术的发展&#xff0c;人脸识别已经成为日常生活中不可或缺的一部分。在众多的人脸识别算法中&#xff0c;FisherFaces 方法因其简单易用且具有良好的识别效果而备受青睐。本文将详细介绍如何使用Python和OpenCV库实现基于FisherFaces的人脸识别系统&#x…

Flink On kubernetes

Apache Flink 是一个分布式流处理引擎&#xff0c;它提供了丰富且易用的API来处理有状态的流处理应用&#xff0c;并且在支持容错的前提下&#xff0c;高效、大规模的运行此类应用。通过支持事件时间&#xff08;event-time&#xff09;、计算状态&#xff08;state&#xff09…

知道ip地址怎么看网络地址

在计算机网络的世界里&#xff0c;IP地址是设备之间通信的基础。然而&#xff0c;仅仅知道一个设备的IP地址并不足以完全理解它在网络中的位置和作用。网络地址&#xff0c;作为IP地址的一个重要组成部分&#xff0c;为我们提供了关于设备所属网络的更多信息。本文将深入探讨如…

从零开始搭建:基于在线教育系统源码的线上网校开发详解

本文将通过详细的技术分析&#xff0c;帮助你了解如何基于在线教育系统源码搭建线上网校&#xff0c;从而帮助你更好地构建稳定且高效的线上教育平台。 一、为什么选择在线教育系统源码&#xff1f; 在搭建线上网校时&#xff0c;使用成熟的在线教育系统源码是一个快速且高效…

【LwIP源码学习3】TCP协议栈分析——数据接收流程

前言 本文介绍代码在lwip的tcp_in.c文件中&#xff0c;主要介绍TCP协议栈中数据的接收流程。 正文 1、一个正常的TCP数据&#xff0c;首先会传入到 tcp_input(struct pbuf *p, struct netif *inp)函数&#xff0c;其中指针p指向传入的数据流。 2、从数据流中获取TCP头部 …

mysql的一点理解

1、mysql B树 B树非叶子结点中的key存储的是页的用户记录中最小/最大的主键值&#xff0c;之前不知道非叶子结点中的key存的是最小/最大&#xff0c;以为随便存的一个。 2、mysql范围查询 如果对多个列都进行范围查询&#xff0c;只有对索引最左边的那个列索引才生效。 比如…

字符串和字符数组

1.字符串和\0 c语言中有字符类型&#xff0c;但没有字符串类型&#xff0c;c语言中字符串就是由双引号引起来的一串字符&#xff0c;比如&#xff1a;“abcdef” 字符串常量在末尾隐藏了一个’\0’的转义字符&#xff0c;\0’是作为字符串的结束标志存在的 库函数printf与str…

隔离器“芯”实力,华普微荣获“2024年度硬核信号链芯片奖”

10月14日&#xff0c;由深圳市芯师爷科技有限公司和慕尼黑华南电子展携手主办&#xff0c;深圳市半导体行业协会支持的“第六届硬核芯生态大会暨颁奖典礼”&#xff0c;已于深圳国际会展中心&#xff08;宝安新馆&#xff09;成功举办。值此盛会之际&#xff0c;华普微受邀参会…

热成像人像算法呈现方式!

一、热红外成像技术 热红外成像技术利用物体发出的红外辐射进行成像&#xff0c;这种辐射与物体的温度有关。因此&#xff0c;热红外成像可以不受光照条件的影响&#xff0c;且在图像中&#xff0c;人体由于温度较高&#xff0c;通常会比背景显得更亮。 二、图像处理算法 阈…

Python爬虫必备的8大技巧,学习爬虫技巧必看!

想要快速学习爬虫&#xff0c;最值得学习的语言一定是Python&#xff0c;Python应用场景比较多&#xff0c;比如&#xff1a;Web快速开发、爬虫、自动化运维等等&#xff0c;可以做简单网站、自动发帖脚本、收发邮件脚本、简单验证码识别脚本。 爬虫在开发过程中也有很多复用的…

如何有效进行主机加固?深信达MCK提供答案

在数字化时代&#xff0c;企业面临的网络安全威胁日益严峻&#xff0c;尤其是勒索病毒等恶意软件的攻击&#xff0c;给企业带来了巨大的挑战。为了有效应对这些威胁&#xff0c;企业需要采取全面的网络安全防护措施&#xff0c;其中主机加固成为了关键的一环。深信达的MCK主机加…

【Arthas】【持续更新】三分钟掌握arthas常用查询命令,入门到实战

Arthas 一、下载和启动1、官网地址2、下载3、启动4、退出 二、常用命令1、dashboard&#xff1a;当前系统的实时数据面板2、profiler&#xff1a;监控进程的cpu\内存使用情况。细致到某个方法采集与生成报告查看 profiling 状态查看 profiler 自身的内存占用 3、thread&#xf…

GPT4o,GPTo1-preview, 拼

兄弟们GPT刚开的 需要上车的扣&#xff0c;工作用 大家一起PIN分摊点压力。 在当今数字化的时代&#xff0c;程序员这一职业已经从幕后走到了前台&#xff0c;成为推动科技进步和社会变革的关键力量。编写代码、解决问题、不断学习新技术&#xff0c;程序员们的日常充满了挑战与…

SpringMVC拦截器应用实例与优化

前言 本文将介绍如何使用SpringMVC的拦截器的基本使用 拦截器概念 SpringMVC拦截器&#xff08;Interceptor&#xff09;是一种动态拦截方法调用的机制&#xff0c;它能够在指定的方法调用前后执行预先设定的代码&#xff0c;甚至阻止原始方法的执行。拦截器在Spring MVC框架中…

利士策分享,美国“假旗”行动,是否成为了网络空间的阴霾?

利士策分享&#xff0c;美国“假旗”行动&#xff0c;是否成为了网络空间的阴霾? 在当今这个信息化时代&#xff0c;网络空间已经成为国家间竞争与合作的重要领域。然而&#xff0c;美国却频繁采取一种名为“假旗行动”的卑劣手段&#xff0c;污染全球网络空间&#xff0c;给世…

《最优化方法》

课件是学习的核心内容 这门课&#xff0c;作业自己交&#xff0c;但是老师不做记录&#xff0c;上课不点名&#xff0c; 不记录平时成绩。 第一章 最优化问题的概述 1.1 概述&#xff08;和考试内容无关&#xff0c;了解内容&#xff09; 例题1.1.1运输问题 数学模型&#x…

(37)使用MATLAB画出余弦波的频谱

文章目录 前言一、MATLAB仿真代码二、仿真结果画图 前言 首先使用MATLAB生成一段余弦信号&#xff0c;然后对其进行FFT变换&#xff0c;画出其频谱。 一、MATLAB仿真代码 代码如下&#xff1a; f [50, 100]; % 两个余弦波的频率 fs 1000; …

论文 | OpenICL: An Open-Source Framework for In-context Learning

主要内容&#xff1a; 2. 提供多种 ICL 方法&#xff1a; 3. 完整的教程&#xff1a; 4. 评估和验证&#xff1a; 背景&#xff1a; 随着大型语言模型 (LLM) 的发展&#xff0c;上下文学习 (ICL) 作为一种新的评估范式越来越受到关注。问题&#xff1a; ICL 的实现复杂&#xf…

springboot在线医疗问答平台

基于springbootvue实现的在线医疗问答平台 &#xff08;源码L文ppt&#xff09;4-088 4 系统设计 4.1 功能模块设计 在线医疗问答平台根据权限类型进行分类&#xff0c;主要可分为用户、医生和管理员三大模块。用户、医生模块主要实现了修改个人信息&#xff0c;查看…

力扣题31~40

题31&#xff08;中等&#xff09;&#xff1a; 分析&#xff1a; 其实这题题目比较难懂&#xff0c;题目还是挺简单的 我们可以从后面末尾开始&#xff0c;如果前一个大于后面的&#xff0c;说明后面不用动&#xff0c;如果小于&#xff0c;那就找仅仅大于它的数字放前面&…