33、IO/标准IO对图片操作练习及文件IO相关练习20240219

一、使用fread和fwrite完成两个图片文件的拷贝(标准IO)。

代码:

#include<myhead.h>int main(int argc, const char *argv[])
{FILE *srcfp=NULL;FILE *destfp=NULL;if((srcfp=fopen("./hongfeng.bmp","r"))==NULL || (destfp=fopen("./yezi.bmp","r+"))==NULL){perror("fopen error");//打开两个图片文件return -1;}int bmpSizeh=0;int bmpSizey=0;fseek(srcfp,2,SEEK_SET);//光标移动到存放图片数据大小的位置fseek(destfp,2,SEEK_SET);fread(&bmpSizeh,sizeof(int),1,srcfp);//读取图片大小fread(&bmpSizey,4,1,destfp);printf("bmpSizeh=%d bmpSizey=%d\n",bmpSizeh,bmpSizey);//输出大小fseek(srcfp,54,SEEK_SET);//光标移动到图像像素矩阵位置fseek(destfp,54,SEEK_SET);unsigned char color[3]={0,0,0};//定义一个数组存放每个像素点的颜色数值for(int i=0;i<500;i++){for(int j=0;j<800;j++){fread(color,sizeof(color),1,srcfp);//从hongfeng.bmp中保存一个像素点数据fwrite(color,sizeof(color),1,destfp);//拷贝到yezi.bmp对应的位置}}fclose(srcfp);//关闭文件fclose(destfp);return 0;
}

运行:

二、 使用read、write完成两个文件的拷贝(文件IO)。

代码:

#include<myhead.h>int main(int argc, const char *argv[])
{int srcfd= -1,destfd= -1;if((srcfd=open("./1.c",O_RDONLY))==-1 || (destfd=open("./2.txt",O_WRONLY|O_CREAT|O_APPEND,0664))==-1){perror("open error");//只读形式打开1.c 只写|创建|追加形式打开2.txt;return -1;}printf("open success srcfd=%d destfd=%d\n",srcfd,destfd);//打开成功输出文件描述符char ch[128]="";while(1){ssize_t res=read(srcfd,ch,sizeof(ch));//从1.c中复制数据if(res==0)     //读取失败返回-1,结束循环;break;write(destfd,ch,res);//向2.txt写入数据}close(srcfd);//关闭文件close(destfd);return 0;
}

运行:

三、将时间在文件中输出 按秒刷新:

如1、17:30:41

2、17:30:42

3、17:30:43

键入ctrl+c,结束进程后

...

4、17:35:28

5、17:35:29

代码:

#include<myhead.h>int main(int argc, const char *argv[])
{while(1)//外部循环控制{int fd=-1;if((fd=open("./time.txt",O_RDWR|O_CREAT|O_APPEND,0664))==-1){perror("open error");//创建time.txt文件并追加打开return -1;}int line=1;//行号1开始while(1){char temp;ssize_t rew=read(fd,&temp,1);//按字符遍历文件内数据存入tempif(rew<=0)//遍历结束条件;break;if(temp=='\n')line++;//记录行号}time_t sysTime=0;time(&sysTime);//获取秒数struct tm *t=localtime(&sysTime);//获取结构体char ch[32]="";//存入时间的字符串snprintf(ch,sizeof(ch),"%2d、%2d:%2d:%2d\n",line,t->tm_hour,t->tm_min,t->tm_sec);write(fd,ch,strlen(ch));//将字符串中的行、小时:分钟:秒存入文件write(2,ch,strlen(ch));//在终端输出sleep(1);//休眠一秒close(fd);}return 0;
}

运行:

思维导图:

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

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

相关文章

寻找最富裕的小家庭

题目描述 在一棵树中&#xff0c;每个节点代表一个家庭成员&#xff0c;节点的数字表示其个人的财富值&#xff0c;一个节点及其直接相连的子节点被定义为一个小家庭。 现给你一棵树&#xff0c;请计算出最富裕的小家庭的财富和。 输入描述 第一行为一个数N&#xff0c;表示…

【LeetCode-494】目标和(回溯动归)

目录 LeetCode494.目标和 题目描述 解法1&#xff1a;回溯法 代码实现 解法2&#xff1a;动态规划 代码实现 LeetCode494.目标和 题目链接 题目描述 给定一个非负整数数组&#xff0c;a1, a2, ..., an, 和一个目标数&#xff0c;S。现在你有两个符号 和 -。对于数组中…

哪个电商抠图软件比较好用?这些软件也太好用了吧

当需要从原始场景中分离图片中的对象时&#xff0c;抠图变得尤为关键。对于电商从业者而言&#xff0c;抠图是不可或缺的步骤。手动抠图耗时费力&#xff0c;而利用一键抠图软件可以显著提高工作效率和质量。然而&#xff0c;市场上有众多抠图软件&#xff0c;其中哪些是真正好…

【已解决】windeployqt.exe此应用无法在你电脑上运行

遇到这种问题时&#xff0c;通常网络会给出右击程序的兼容性或者以管理员命令行身份运行该程序。但是本文想要告诉的是这个windeployqt.exe出现此应用无法在你电脑上运行问题出现时&#xff0c;如何解决&#xff1f; 解决方案 笔者出现的问题是这个exe大小变成0kb所以无法打…

docker 运行 tdengine 并且mybatis 连接

docker 运行 tdengine # 创建本地目录 mkdir -p /taos/log mkdir -p /taos/data mkdir -p /usr/share/zoneinfo docker run -d --name tdengine --hostname"tdengine-server" \-v /taos/log:/var/log/taos -v /taos/data:/var/lib/taos \-v /usr/share/zoneinf…

【详细流程】vue+Element UI项目中使用echarts绘制圆环图 折线图 饼图 柱状图

vueElement UI项目中数据分析功能需要用到圆环图 折线图 饼图 柱状图等&#xff0c;可视化图形分析 安装流程及示例 1.安装依赖 npm install echarts --save2.在main.js中引入并挂载echarts import echarts from echarts Vue.prototype.$echarts echarts3.在需要使用echart…

Redis RabbitMQ

Redis&#xff1a;轻量级&#xff0c;NoSQL数据库 redis是一个key-value存储系统。和Memcached类似&#xff0c;它支持存储的value类型相对更多&#xff0c;包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash&#xff08;哈希类型&#xff09;。这…

VMware还原Windows11 ghost镜像

文章目录 环境步骤准备制作启动iso文件创建虚拟机启动虚拟机还原Windows 参考 环境 Windows 11 家庭中文版VMware Workstation 17 Pro石大师装机大师Windows 11 ghost系统镜像 步骤 准备 下载好Windows 11 ghost系统镜像&#xff0c;我下载的文件是 FQ_WIN11_X64_VDL_V2080…

AMD FPGA设计优化宝典笔记(1)触发器

高亚军老师的这本书《AMD FPGA设计优化宝典》&#xff0c;他主要讲了两个东西&#xff1a; 第一个东西是代码的良好风格&#xff1b; 第二个是设计收敛等的本质。 这个书的结构是一个总论&#xff0c;加上另外的9个优化&#xff0c;包含的有&#xff1a;时钟网络、组合逻辑、触…

文件IO,目录IO的学习

一&#xff0c;头文件的添加 #ifndef _HEAD_H_ //防止重新定义宏 #define _HEAD_H_#include<stdio.h> #include<sys/stat.h> #include<sys/types.h> #include<fcntl.h> #include<unistd.h> #include<string.h>#endif…

Pytest自动化测试框架介绍

1、什么是单元测试框架 单元测试是指在软件开发当中&#xff0c;针对软件的最小单位&#xff08;函数&#xff0c;方法&#xff09;进行正确性的检查测试。 2、单元测试框架主要做什么 测试发现&#xff1a;从多个文件里面去找到我们需要的测试用例。 测试执行&#xff1a;按…

Java EE面试题解析(下)

21、 什么是Servlet&#xff1f;【掌握】 Servlet是使用Java Servlet应用程序接口&#xff08;API&#xff09;及相关类和方法的Java程序。所有的Servlet都必须要实现的核心接口是javax.servlet.servlet。每一个Servlet都必须要直接或者间接实现这个接口&#xff0c;或者继承j…

ThreadLocal “你”真的了解吗?

今天想梳理一个常见的面试题。在开始之前&#xff0c;让我们一起来回顾一下昨天的那篇文章——《Spring 事务原理总结七》。这篇文章比较啰嗦&#xff0c;层次也不太清晰&#xff0c;所以以后有机会我一定要重新整理一番。这篇文章主要想表达这样一个观点&#xff1a;Spring的嵌…

基于SpringBoot+Vue的零食零售管理系统

末尾获取源码作者介绍&#xff1a;大家好&#xff0c;我是墨韵&#xff0c;本人4年开发经验&#xff0c;专注定制项目开发 更多项目&#xff1a;CSDN主页YAML墨韵 学如逆水行舟&#xff0c;不进则退。学习如赶路&#xff0c;不能慢一步。 目录 一、项目简介 二、开发技术与环…

Rocky Linux 下载安装

一、VMware Workstation下载安装 1、安装教程 VMware Workstation下载安装&#xff08;含密钥&#xff09; 二、VMware Workstation 创建虚拟机 1、创建教程 VMware Workstation 创建虚拟机 三、Rocky Linux 下载 1、下载官网 RockyLinux.org 2、选择X86架构_64位系统_DVD镜…

部分回溯法题解

部分回溯法题解 一、22. 括号生成二、39. 组合总和 一、22. 括号生成 中 数字 n 代表生成括号的对数&#xff0c;请你设计一个函数&#xff0c;用于能够生成所有可能的并且 有效的 括号组合。 示例 1&#xff1a; 输入&#xff1a;n 3 输出&#xff1a;[“((()))”,“(()())…

javascript 中的class 和typescript中的class的区别

JavaScript 中的类&#xff08;class&#xff09;和 TypeScript 中的类有一些相似之处&#xff0c;但 TypeScript 在其类的定义和使用方面引入了一些额外的功能和语法糖&#xff0c;以提供更严格的类型检查和更丰富的面向对象编程功能。下面是一些主要的区别&#xff1a; 类型注…

【第61例】市场管理MM流程:定价策略

目录 1. 内容简介 2. 为什么要做定价? 3. 一些主流的定价策略 作者简介 1. 内容简介 在之前的内容&#

1.网络游戏逆向分析与漏洞攻防-游戏启动流程漏洞-测试需求与需求拆解

内容参考于&#xff1a;易道云信息技术研究院VIP课 上一个内容&#xff1a;分析接收到的对话数据包 这是一个新的篇章&#xff0c;之前是关于把我们的东西放进游戏里和内存里的数据分析与利用&#xff0c;现在是专注于网络部分&#xff0c;通过分析网络数据包得到应用程序中各…

什么是MVVM?MVC、MVP与MVVM模式的区别?

MVVM&#xff08;Model-View-ViewModel&#xff09;是一种软件架构模式&#xff0c;用于将用户界面&#xff08;View&#xff09;与业务逻辑&#xff08;Model&#xff09;分离&#xff0c;并通过ViewModel来连接两者。MVVM的目标是实现可测试性、可维护性和可复用性。 MVC&am…