当前位置: 首页 > news >正文

C语言实现图片文件的复制

在C语言中,直接处理图片文件(如JPEG、PNG等)的复制,通常涉及到文件I/O操作。这些图片文件是二进制文件,因此需要使用二进制模式读取和写入文件。

图片文件复制代码:

#include <stdio.h>
#include<string.h>int main(){FILE *fp1,*fp2;char buf[100];int size;fp1 = fopen("C:\\Users\\87417\\Desktop\\error_404.jpg","rb");fp2 = fopen("C:\\Users\\87417\\Desktop\\error_500.jpg","wb");if(fp1 == NULL){printf("can't open this file1.\n");return 0;}if(fp2 == NULL){printf("can't open this file2.\n");return 0;}while((size=fread(buf,1,100,fp1))>0){fwrite(buf,1,size,fp2);}fclose(fp1);fclose(fp2);return 0;
}

使用 fopen 函数以二进制模式打开文件。rb 表示读取二进制文件,wb 表示写入二进制文件。

fread 函数

fread 函数用二进制方式向文件读取数据。

size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);

ptr:指向一个内存缓冲区的指针,该缓冲区用于存储从文件中读取的数据。
size:要读取的每个数据项的大小(以字节为单位)。
nmemb:要读取的数据项的数量。
stream:指向 FILE 对象的指针,表示要从中读取数据的文件流。
fread 函数返回成功读取的数据项的数量,这可能会小于 nmemb 如果在到达文件末尾之前无法读取这么多数据项。如果发生读取错误或到达文件末尾,ferror 或 feof 函数将返回非零值。

fwrite 函数

fwrite 函数用二进制方式向文件写入数据。

size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream);

ptr:指向包含要写入文件的数据的内存缓冲区的指针。
size:要写入的每个数据项的大小(以字节为单位)。
nmemb:要写入的数据项的数量。
stream:指向 FILE 对象的指针,表示要写入数据的文件流。
fwrite 函数返回成功写入的数据项的数量。如果返回值小于 nmemb,则可能发生了写入错误。可以使用 ferror 函数来检查是否发生了错误。

http://www.lryc.cn/news/504176.html

相关文章:

  • 一、windows上配置ninja环境
  • 我们来编程 -- win11多jdk版本切换
  • JAVA 图形界面编程 AWT篇(1)
  • C语言 字符串输入输出函数、scanf(“%[^\n]“,)可输入空格 、fgets删除换行符
  • 【蓝桥杯每日一题】推导部分和——带权并查集
  • Linux 磁盘满了怎么办?快速排查和清理方法
  • 【专题】2024年中国新能源汽车用车研究报告汇总PDF洞察(附原数据表)
  • 数据结构之链表笔试题详解
  • 结构化的Prompt
  • 【数字化】华为数字化转型架构蓝图
  • 最新全开源IM即时通讯系统源码(PC+WEB+IOS+Android)部署指南
  • go 跨平台打包
  • C++ 给定字符串,然后给出开始要取的位置,返回取到的信息
  • 【树莓派4B】MindSpore lite 部署demo
  • Idea汉化插件Datagrip汉化插件
  • 精彩回顾|Cocos开发者沙龙长沙站
  • 算法日记 49 day 图论(A*算法)
  • 服务器批量清理redis keys,无法适用客户端必须直连的情况
  • Grafana配置告警规则推送企微机器人服务器资源告警
  • 数字货币金融研究,深度学习虚拟币价格预测 数据集 市值top20 (2014年—2024年)
  • druid.properties图标是齿轮
  • 【图像处理】利用numpy、opencv、python实现车牌检测
  • ModuleNotFoundError: No module named ‘torchvision.transforms.functional_tensor‘
  • Android无障碍服务监听实现自动点击按钮
  • Deveco Studio首次编译项目初始化失败
  • Redis缓存应用场景【Redis场景上篇】
  • 线程与进程基础
  • electron 打包 webview 嵌入需要调用电脑摄像头拍摄失败问题
  • OpenCV的简单练习
  • JAVA:建造者模式(Builder Pattern)的技术指南