C语言对文件的读取和写入操作代码
发布日期:2021-09-14 23:17:56
浏览次数:5
分类:技术文章
本文共 1579 字,大约阅读时间需要 5 分钟。
#include#define INint rwFile(IN char * orgnFile, IN char * outFile){ FILE *fpIN; FILE *fpOUT; fpIN = fopen(orgnFile,"rb"); // 打开原始的文件 // 获取文件大小 fseek(fpIN,0L,SEEK_END); // 这一句是将文件指针fp移动到文件数据的最后一位上 int len = ftell(fpIN); // 获取当前文件指针到文件开头的长度大小 fseek(fpIN,0,0); // 将文件指针fp移动到文件开头的地方 printf("%d\n", len); unsigned char in[len]; fread(in,1,len,fpIN); // 读取原始文件,将文件内容存到 in 中 fclose(fpIN); fpOUT = fopen(outFile,"w+"); // 打开要写入的文件 fwrite(in,sizeof(in),1,fpOUT); // 将上面读取的 in 写入到要写入的文件中 fclose(fpOUT); return 0;}int main(){ char *origin_file = "origin.txt"; char *out_file = "out.txt"; rwFile(origin_file, out_file); return 0;}
上述代码遇到文件比较大的可能就无能为力了
**对大文件读写:
**
#include#include #define IN#define OUT// 获取文件大小int FileSize(IN char *file){ FILE *fil; fil = fopen(file,"rb"); fseek(fil,0L,SEEK_END); int filesize = ftell(fil); fseek(fil,0,0); return filesize;}// 读取文件int ReadFileData(IN char *fileName, OUT char *filedata){ FILE *fpIN; int fileSizes = FileSize(fileName); fpIN = fopen(fileName,"rb"); fread(filedata,1,fileSizes,fpIN); fclose(fpIN);}// 写入文件int WriteToFile(char *filedata, int size, OUT char *outFileName){ FILE *fpOUT; fpOUT = fopen(outFileName,"w+"); fwrite(filedata,1,size,fpOUT); fclose(fpOUT);}int main(){ char *origin_file = "file.mp4"; int orgfilesize = FileSize(origin_file); // 获取文件的大小 char *file_data=malloc(orgfilesize); // 分配文件大小的内存 ReadFileData(origin_file, file_data); // 读取文件 char *outFile = "outfile.mp4"; WriteToFile(file_data,orgfilesize,outFile); // 写出文件 return 0;}
转载地址:https://blog.csdn.net/weixin_43451928/article/details/108715338 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
路过,博主的博客真漂亮。。
[***.116.15.85]2024年03月29日 01时19分12秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
HDU - Coins(完全背包)
2019-04-28
JXFCZX — 砝码称重1(DFS+背包)
2019-04-28
JXFCZX — 质数和分解(完全背包)
2019-04-28
JXFCZX — 花店橱窗(动态规划)
2019-04-28
JXFCZX — 逃亡的准备(多重背包)
2019-04-28
JXFCZX — 庆功会(多重背包)
2019-04-28
AcWing - 扩展欧几里得算法(扩欧)
2019-04-28
AcWing - 高斯消元解线性方程组(高斯消元)
2019-04-28
AcWing - 求组合数 I(递推)
2019-04-28
AcWing - 求组合数 II(预处理&逆元)
2019-04-28
AcWing - 求组合数 III(lucas&逆元)
2019-04-28
AcWing - 求组合数 IV(分解质因数)
2019-04-28
AcWing - 满足条件的01序列(组合数学&卡特兰数)
2019-04-28
AcWing - 快速排序(快排)
2019-04-28
AcWing - 归并排序(归排)
2019-04-28
AcWing - 数的范围(二分)
2019-04-28
AcWing - 数的三次方根(二分)
2019-04-28
AcWing - 高精度加法(大数加法)
2019-04-28
AcWing - 高精度减法(大数减法)
2019-04-28
AcWing - 高精度乘法(大数乘法)
2019-04-28