用C语言编写一个可以拆分文件与合并文件的应用

具体使用方法如下

程序名  -t  s  拆分文件名  拆分大小  拆分文件生成列表

程序名  -t  c  文件列表  拆分文件名

具体思路,先使用 IF 判断 输入参数

然后跳转到相应的操作

如果输入  s  则进行拆分操作

如果输入  c  则进行合并操作

具体代码如下

#include <stdio.h>
#include <stdlib.h>int main(int argc,char* argv[])
{FILE *fpr; /*读文件指针*/FILE *fpw; /*写文件指针*/FILE *fplist; /**/long offset; /*文件指针位置*/long fsize;  /*文件大小*/long fblock; /* 1 M */char data;unsigned int size_r;char file_name[20];int file_id; /*新文件名id,001,002*/char *pchar;if (argv[2][0] == 's') //判断是否执行分割操作{printf("正在执行分割操作....\n");fpr = fopen(argv[3],"rb");fblock = atol(argv[4]);if(!fpr){printf("文件打开失败!\n");exit(1);}offset = 0;fseek(fpr,0,SEEK_END);fsize = ftell(fpr);fseek(fpr,0,SEEK_SET); /*返回文件头*/size_r = fread(&data,sizeof(char),1,fpr);file_id = 1;sprintf(file_name,"fv.%03d",file_id); /* demo.001 */fpw = fopen(file_name,"wb"); /*创建新文件*/fplist = fopen(argv[5],"w");while(size_r>0){/*写入新的文件*/fwrite(&data,sizeof(char),1,fpw);offset = ftell(fpr);if(offset % fblock == 0){/*结束当前文件,建立新文件*/fclose(fpw);fputs(file_name,fplist);fputs("\n",fplist);file_id++;sprintf(file_name,"fv.%03d",file_id); /* demo.00x */  fpw = fopen(file_name,"wb"); /*创建新文件*/}size_r = fread(&data,sizeof(char),1,fpr);}if(fpw){fputs(file_name,fplist);fclose(fpw);}fclose(fplist);fclose(fpr);}if (argv[2][0] == 'c'){   printf("正在执行合并操作...\n");/*FILE *fpr;*//*FILE *fpw;*//*FILE *fplist;*//*创建要写入文件*/fpw = fopen(argv[4],"wb");if(!fpw){printf("文件创建失败!\n");exit(1);}fplist = fopen(argv[3],"r");pchar = fgets(file_name,20,fplist);while(pchar != NULL){if(file_name[strlen(file_name)-1] == '\n'){file_name[strlen(file_name)-1] = '\0';}//printf("%s",file_name);     fpr = fopen(file_name,"rb");if(!fpr){printf("打开文件%s失败\n",file_name);exit(1);}size_r = fread(&data,sizeof(char),1,fpr);while(size_r>0){fwrite(&data,sizeof(char),1,fpw);size_r = fread(&data,sizeof(char),1,fpr);}fclose(fpr);     pchar = fgets(file_name,20,fplist);}fclose(fpw);}return 0;
}

C语言文件的拆分与合并操作相关推荐

  1. java实现对大文件切割下载_Java实现大文件的切割与合并操作示例

    Java实现大文件的切割与合并操作示例 发布时间:2020-09-27 02:25:08 来源:脚本之家 阅读:99 作者:HiBoyljw 本文实例讲述了Java实现大文件的切割与合并操作.分享给大 ...

  2. C语言文件与数组之间输入输出操作

    C语言文件与数组之间输入输出操作 文件存到数组里面: #include<iostream> #include<fstream> #include<string> # ...

  3. c语言 文件读取z整行操作,C语言文件操作函数之ferror feof clearerr

    这些函数都是和文件读写时发生错误有关,下面一一分析: 1:ferror 原型:int ferror(FILE * fp) 作用:测试一个文件流是否被设置了错误标识符,如果是返回非 0 整数,否则返回 ...

  4. linux下将多个文件去除文件头合并_命令行生存指南:拆分与合并 | Linux 中国

    这一节将会介绍 Linux 命令行下的文件拆分与合并操作. 作者:Psiace (本文字数:2706,阅读时长大约:3 分钟) 作为一个工程师,我们经常与命令行打交道,但除了工作用的命令,你是否尝试过 ...

  5. Java实现文件的拆分合并

    一.文件拆分的思路: 定义好每块文件的大小,先根据文件大小,计算出块数,然后把每一块读入缓冲区,从缓冲区写到定好的目录中 public static void main(String[] args) ...

  6. 拆分命令_命令行生存指南:拆分与合并 | Linux 中国

    导读:这一节将会介绍 Linux 命令行下的文件拆分与合并操作. 本文字数:2706,阅读时长大约:3分钟作者:Psiace 作为一个工程师,我们经常与命令行打交道,但除了工作用的命令,你是否尝试过让 ...

  7. 使用PHP将pdf文件和图片进行合并

    在laravel框架下开发,laravel版本为: artisan --version Laravel Framework 5.5.40 使用composer安装fpdf和fpdi的扩展,先在comp ...

  8. c语言文件合并,c++实现合并文件以及拆分实例代码

    本文主要研究的是c++实现合并文件以及拆分的相关内容,分享了实现代码,具体如下. 昨天看到一篇介绍TFS的文章,大意是为了处理海量图片,采用分布式架构,将小图片合并为大的文件 兴趣驱使下,写了一个简单 ...

  9. python 1 2 3怎么拼接所有可能的数_6000字长文,带你用Python完成 “Excel合并(拆分)” 的各种操作!...

    原标题:6000字长文,带你用Python完成 "Excel合并(拆分)" 的各种操作! 一.概述 其实Excel合并这个需求,应该是一个极为普遍的需求了.今天我们就利用Pytho ...

最新文章

  1. usaco Cow Tours 牛的旅行
  2. Deep Neural Networks的Tricks
  3. Freemarker商品页面静态化
  4. 目标函数、损失函数、代价函数
  5. 基于gulp的前端脚手架(二)
  6. java socket 推送机制_Java中websocket消息推送的实现代码
  7. PHP 在作为中间件时print无返回值问题
  8. 如何让代码更易于维护_易于使用的单位和集成代码
  9. mysql5.6与mysql5.5不同
  10. c++学习笔记(4)
  11. MFC浮动窗口使用方法和注意事项
  12. AJAX用法、HTTP头部信息
  13. 用“看板图”实现敏捷项目的可视化
  14. 蓝桥杯备赛第一天-138译码器
  15. 浅谈ARM Cortex-M0
  16. 投票问题 python
  17. A/BTest 基础
  18. linux移除硬盘命令,在Linux中在线添加及移除SCSI硬盘方法
  19. 第 16 章 下载数据
  20. neo4j springboot 日志_springBoot 与neo4j的简单整合示例

热门文章

  1. Express+MongoDB服务端开发教程
  2. 文本处理算法_基于 Python 的 11 种经典数据降维算法
  3. 错排的递推公式及推导
  4. Bad Request:Your browser sent a request that this server could not understand.
  5. 放下一切包袱,轻装前行
  6. 自我学习-逆向解析BOSS直聘cookie字段 _zp_stoken__加密
  7. window2012 修改盘符
  8. discuz帖子列表页调用帖子作者头像
  9. postgres use
  10. 停车场编码C语言,停车场系统部分C语言代码