IO进程线程作业day2

使用fread和fwrite完成两个图片文件的拷贝

#include <myhead.h>	
#define high 541
#define wide 541
int main(int argc, const char *argv[])
{//以只读的方式打开图片文件1.bmpFILE *fp = NULL;if((fp = fopen("./1.bmp", "r")) == NULL){perror("fopen error");return -1;}//以只写的方式打开文件work1.bmpFILE *fq=NULL;if((fq= fopen("./work1.bmp", "w")) == NULL){perror("fopen error");return -1;}//先复制位图文件头和位图信息图unsigned char head[54];fread(head,1,sizeof(head),fp);fwrite(head,1,sizeof(head),fq);//将光标定位在图像像素矩阵位置fseek(fp,54,SEEK_SET);//将光标定位在图像像素矩阵位置fseek(fq,54,SEEK_SET);unsigned char str[3]="";//定义一个容器用来储存和读取像素//循环取出1.bmp的像素存入work1.bmp中int res;while((res=fread(str,1,sizeof(str),fp))>0){fwrite(str,1,res,fq);//写入像素}fclose(fp);fclose(fq);return 0;
}

现象展示: 

使用read、write完成两个图片文件的拷贝

#include <myhead.h>	
#define high 653
#define wide 653
int main(int argc, const char *argv[])
{//以只读的方式打开图片文件2.bmpint fp=-1;if((fp=open("./2.bmp",O_RDONLY))==-1){perror("open error");return -1;}//以只写的方式打开文件work2.bmpint fq=-1;if((fq=open("./work2.bmp",O_WRONLY|O_CREAT|O_TRUNC,0666))==-1){perror("fopen error");return -1;}//先复制位图文件头和位图信息图unsigned char head[54];read(fp,head,sizeof(head));write(fq,head,sizeof(head));//将光标定位在图像像素矩阵位置lseek(fp,54,SEEK_SET);//将光标定位在图像像素矩阵位置lseek(fq,54,SEEK_SET);unsigned char str[3]={0,0,0};//定义一个容器用来储存和读取像素//循环取出2.bmp的像素存入work2.bmp中int res;while((res=read(fp,str,sizeof(str)))!=0){write(fq,str,res);//写入像素}close(fp);close(fq);return 0;
}

效果图

3> 将时间在文件中跑起来

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>	
#include <time.h>
int main(int argc, const char *argv[])
{		FILE *fp=NULL;char time_buf[100]="";//存储时间格式串的容器char str[100]="";char ptr[100]="";//存储从文件中读取的时间串while (1){//以追加的方式打开时间文件if((fp=fopen("./time.txt","a+"))==NULL){perror("fopen error");return -1;}time_t sysTime=time(NULL);//获取时间秒数struct tm *t=localtime(&sysTime);//通过秒数获取时间结构体指针//查找最后一个行号的位置int count=1;while(fgets(str,sizeof(str),fp)!=NULL){count++;}//将时间的格式串储存到一个数组中snprintf(time_buf, sizeof(time_buf), "%2d、%2d:%2d:%2d\n", count,t->tm_hour, t->tm_min, t->tm_sec);//写入行号和时间串fwrite(time_buf,strlen(time_buf),1,fp);//移动光标至读取时间位置fseek(fp,-strlen(time_buf),SEEK_END);fread(ptr,strlen(time_buf),1,fp);printf("%s\n",ptr);sleep(1); fclose(fp);}return 0;
}

效果图:

 思维导图

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

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

相关文章

【C语言】位操作符与移位操作符练习

目录 前言&#xff1a; 1.一道变态的面试题 2.输入一个整数 n &#xff0c;输出该数32位二进制表示中1的个数。其中负数用补码表示。 方法一&#xff1a; 方法二&#xff1a; 方法三&#xff1a; 3.打印整数二进制的奇数位和偶数位 前言&#xff1a; 前篇我们学习过C语言…

【漏洞复现-通达OA】通达OA WHERE_STR 存在前台SQL注入漏洞

一、漏洞简介 通达OA(Office Anywhere网络智能办公系统)是由北京通达信科科技有限公司自主研发的协同办公自动化软件,是与中国企业管理实践相结合形成的综合管理办公平台。通达OA WHERE_STR存在前台SQL注入漏洞,攻击者可通过该漏洞获取数据库敏感信息。 二、影响版本 ●…

《白话C++》第10章 STL和boost,Page85 std::shared_ptr常用功能

std::shared_ptr基本用法包括&#xff1a; &#xff08;1&#xff09;取裸指针 //get()成员取回裸指针 std::shared_ptr <int> pa(new int(5)); int* p pa.get(); /**< 取回裸指针 */ &#xff08;2&#xff09;判断是否为空 肯定可以这样写&#xff1a; std::s…

STM32-点亮 LED

目录 1 、电路构成及原理图 2 、编写实现代码 3、代码讲解 4、烧录到开发板调试、验证代码 5、检验效果 本人使用的是朗峰 STM32F103 系列开发板&#xff0c;此笔记基于这款开发板记录。 1 、电路构成及原理图 首先&#xff0c;通过朗峰 F1 开发板 LED 部分原理图看到…

接口频繁请求,被刷爆怎么办

目录 前言 1 防火墙 2 验证码 3 鉴权 4 IP白名单 5 数据加密 6 限流 7 监控 8 网关 前言 在面试时&#xff0c;经常会被问一个问题&#xff1a;如何防止别人恶意刷接口&#xff1f; 这是一个非常有意思的问题&#xff0c;防范措施挺多的。今天这篇文章专门跟大家一起…

css2背景

css2背景 一.背景颜色二.背景图片三.背景平铺四.背景图片位置五.背景图像固定六.复合型写法七.背景颜色半透明八.总结 一.背景颜色 默认是transparent(透明&#xff09; 二.背景图片 默认是none 三.背景平铺 默认是background-repeat(平铺&#xff09; 四.背景图片位置…

Spring Boot应用集成Actuator端点解决未授权访问的漏洞

一、前言 我们知道想要实时监控我们的应用程序的运行状态&#xff0c;比如实时显示一些指标数据&#xff0c;观察每时每刻访问的流量&#xff0c;或者是我们数据库的访问状态等等&#xff0c;需要使用到Actuator组件&#xff0c;但是Actuator有一个访问未授权问题&#xff0c;…

Springboot+vue的疫情信息管理系统(有报告)。Javaee项目,springboot vue前后端分离项目。

演示视频&#xff1a; Springbootvue的疫情信息管理系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot vue前后端分离项目。 项目介绍&#xff1a; 本文设计了一个基于Springbootvue的前后端分离的疫情信息管理系统&#xff0c;采用M&#xff08;model&a…

计算机专业假期必看5部电影

社交网络The Social Network (2010) 《社交网络》&#xff08;The Social Network&#xff09;根据本麦兹里奇的小说《意外的亿万富翁&#xff1a;Facebook的创立&#xff0c;一个关于性、金钱、天才和背叛的故事》改编而成。由大卫芬奇执导&#xff0c;杰西艾森伯格、安德鲁加…

亚马逊测评-养号技巧大揭秘!必须注意的事项!

众所周知&#xff0c;不论是线上还是线下的互联网电商平台&#xff0c;在被刷单的情况下都存在。举例来说&#xff0c;国内一些知名的线上交易平台&#xff0c;如淘宝、京东、拼多多等&#xff0c;都有商家为了提高店铺排名、星级和转化率等目的&#xff0c;进行刷单业务。同样…

OJ链接——打印从1到最大的n位数

目录 1. 题目描述2. 示例3. 分析思路4. 完整代码 1. 题目描述 输入数字 n&#xff0c;按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3&#xff0c;则打印出 1、2、3 一直到最大的 3 位数 999。 用返回一个整数列表来代替打印n 为正整数&#xff0c;0 < n < 5 链接在…

不同的AI修改同一篇文章标题

提问AI 我写了一篇文章&#xff0c;请帮我把标题重新改一下&#xff1a;“比较不同AI分析同一个错误代码及给出解决方案的能力&#xff08;结果出我意料&#xff09;” 这篇文章的原地址为&#xff1a;https://blog.csdn.net/snans/article/details/136132211 答案对比结果&am…