C++->10.3.6.设有两个按升序排列的二进制文件a和b,将他们合并成一个新的升序二进制数据文件file。
#include<iostream.h>
#include<stdlib.h>
#include<string.h>
#include<fstream.h>
struct staff{
long staNum;
char staName[500];
long phoNum;
long num;
char staAddr[1000];
}staf,staf1;
void main(){
fstream fstr1,fstr2,fstr,fstrt;
char i,fn1[80],fn2[80],fn[80],fnt[80],*p1,*p2,*p,*pt,str[1000];
//staff staf1;
int a,b;
p1=&fn1[0]; p2=&fn2[0]; p=&fn[0]; pt=&fnt[0];
cout<<"Please input the file name of fn1:\n";
//cin>>p1;
//fstr1.open(p1,ios::binary|ios::in|ios::out); //1
fstr1.open("E:\\新建文件夹\\新建文件夹\\a.bat",ios::binary|ios::in|ios::out);
if(!p1){ cerr<<"Can't open the file fn1.\n"; return; }
fstr1.seekp(0,ios::end);
cout<<"Please input the number i(Y|y).\n";
cin>>i;
while(i=='Y'||i=='y'){
cout<<"Please input the number staf.\n";
cin>>staf.staNum>>staf.staName>>staf.phoNum>>staf.num>>staf.staAddr;
fstr1.write((char *) &staf,sizeof(staf)); //文件名对象.write函数里的buffer类型只能是(char *),不能是其他类型fstr1.write((int *) &a,sizeof(a));
cout<<"Please input the number i.(Y|y)\n";
cin>>i; }
cout<<"Please input the file name of fn2:\n";
//cin>>p2;
//fstr2.open(p2,ios::binary|ios::in|ios::out); //2
fstr2.open("E:\\新建文件夹\\新建文件夹\\b.bat",ios::binary|ios::in|ios::out);
if(!p2){ cerr<<"Can't open the file fn2.\n"; return; }
fstr2.seekp(0,ios::end);
cout<<"Please input the number i.(Y|y)\n";
cin>>i;
while(i=='Y'||i=='y'){
cout<<"Please input the number staf1.\n";
cin>>staf1.staNum>>staf1.staName>>staf1.phoNum>>staf1.num>>staf1.staAddr;
fstr2.write((char *) &staf1,sizeof(staf1));
cout<<"Please input the number i(Y|y).\n"; cin>>i; }
cout<<"Please input the file name of fn.\n"; //3
//cin>>p;
//fstr.open(p,ios::binary|ios::in|ios::out);
fstr.open("E:\\新建文件夹\\新建文件夹\\file.bat",ios::binary|ios::in|ios::out);
if(!p){ cerr<<"Can't open the file of fn.\n"; return; }
fstr1.seekp(0,ios::end);
long pEnd1=fstr1.tellp();
fstr2.seekp(0,ios::end);
long pEnd2=fstr2.tellp();
fstr1.seekp(0,ios::beg);
fstr2.seekp(0,ios::beg);
while(fstr1.tellp()!=pEnd1&&fstr2.tellp()!=pEnd2){
fstr1.read((char *) &staf,sizeof(staf));
fstr2.read((char *) &staf1,sizeof(staf1));
if(staf.staNum>>staf1.staNum) fstr.write((char *) &staf,sizeof(staf));
else fstr.write((char *) &staf1,sizeof(staf1));
//fstr<<staf1.staNum<<ends<<staf1.staName<<ends<<staf1.phoNum<<ends<<staf1.num<<staf1.staAddr; }
while(fstr1.tellp()!=pEnd1) fstr.write((char *) &staf,sizeof(staf));
while(fstr2.tellp()!=pEnd2) fstr.write((char *) &staf1,sizeof(staf1));
cout<<"Please input the file name of fn4.\n"; //4
//cin>>pt;
//fstrt.open(pt,ios::in|ios::out);
fstrt.open("E:\\新建文件夹\\新建文件夹\\l.txt",ios::in|ios::out);
if(!pt){ cerr<<"Can't open the file of fn.\n"; return; }
fstr.seekg(0,ios::end);
long pEnd3=fstr.tellg();
fstr.seekg(0,ios::beg);
while(fstr.tellg()!=pEnd3){
fstr.read((char *) &staf,sizeof(staf));
fstrt<<staf.staNum<<ends<<staf.staName<<ends<<staf.phoNum<<ends<<staf.num<<staf.staAddr<<endl;
cout<<staf.staNum<<ends<<staf.staName<<ends<<staf.phoNum<<ends<<staf.num<<staf.staAddr<<endl;
} cout<<endl; fstrt.close();
cout<<"Please input the file name of fn4.\n"; //5
//cin>>pt;
//fstrt.open(pt,ios::in|ios::out);
fstrt.open("E:\\新建文件夹\\新建文件夹\\l.txt",ios::in|ios::out);
if(!pt){ cerr<<"Can't open the file of fn.\n"; return; }
//while(fstrt.tellg()!=ptEnd){ fstrt.getline(fn,800);
//cout<<staf.staNum<<ends<<staf.staName<<ends<<staf.phoNum<<ends<<staf.num<<staf.staAddr<<endl; } //二进制的判断方法
do{ fstrt.getline(str,1000); cout<<str<<endl; }while(!fstrt.eof());
fstr1.close(); fstr2.close(); fstr.close(); fstrt.close();
} */
C++->10.3.6.设有两个按升序排列的二进制文件a和b,将他们合并成一个新的升序二进制数据文件file。的更多相关文章
- 将两个列不同的DataTable合并成一个新的DataTable
/// <summary> /// 将两个列不同(结构不同)的DataTable合并成一个新的DataTable /// </summary> ...
- 将两个数组相同index的value合并成一个新的value组成一个新的数组
将两个数组相同index的value合并成一个新的value组成一个新的数组 前提: 这两个数组的长度相同 生成后的新数组长度也相同 返回值都是对象 把rows对象的key和value弄成两个数组, ...
- Java-Runoob-高级教程-实例-字符串:10. Java 实例 - 测试两个字符串区域是否相等-uncheck
ylbtech-Java-Runoob-高级教程-实例-字符串:10. Java 实例 - 测试两个字符串区域是否相等 1.返回顶部 1. Java 实例 - 测试两个字符串区域是否相等 Java ...
- python之最强王者(10)———文件(File)、输入输出的基本操作
1. Python 文件I/O 本章只讲述所有基本的的I/O函数,更多函数请参考Python标准文档. 2.打印到屏幕 最简单的输出方法是用print语句,你可以给它传递零个或多个用逗号隔开的表达式. ...
- ORA-01578: ORACLE 数据块损坏 (文件号 10, 块号 57896)ORA-01110: 数据文件 10: '/data/oradata/prod35.dbf'
https://community.oracle.com/thread/3540795 概述 ------------- 数据库坏块(corruption) 的类型可以按照坏块所属对象的不同,分为用户 ...
- delphi 创建DBASE和FOXPRO两类DBF数据文件的差异
delphi 创建DBASE和FOXPRO两类DBF数据文件的差异,主要有几点: 1.创建方法不同 DBASE的创建方法: Self.Table1.Close; Self.Table1.Active ...
- 如何定义让两个div横向排列
方法一: 一般情况,默认的div是写一个换一行,那么如何定义两个div横向排列而不换行呢? div默认的display属性是block.所以每一个div都是新的一行,现在把display换成inlin ...
- 有两个序列A和B,A=(a1,a2,...,ak),B=(b1,b2,...,bk),A和B都按升序排列。对于1<=i,j<=k,求k个最小的(ai+bj)。要求算法尽量高效。
有两个序列A和B,A=(a1,a2,...,ak),B=(b1,b2,...,bk),A和B都按升序排列.对于1<=i,j<=k,求k个最小的(ai+bj).要求算法尽量高效. int * ...
- python将两个数组合并成一个数组的两种方法的代码
内容过程中,把写内容过程中常用的内容收藏起来,下面的资料是关于python将两个数组合并成一个数组的两种方法的内容,希望能对小伙伴们有帮助. c1 = ["Red","G ...
随机推荐
- learn about sqlserver partitition and partition table --- add or remove table partitions addition more
Yes . In the previous. chapter , we see how to generate "partition function" "parttit ...
- Go语言实现:【剑指offer】二叉搜索树的第k个的结点
该题目来源于牛客网<剑指offer>专题. 给定一棵二叉搜索树,请找出其中的第k小的结点.例如,(5,3,7,2,4,6,8) 中,按结点数值大小顺序第三小结点的值为4. Go语言实现: ...
- The Divide and Conquer Approach - 归并排序
The divide and conquer approach - 归并排序 归并排序所应用的理论思想叫做分治法. 分治法的思想是: 将问题分解为若干个规模较小,并且类似于原问题的子问题, 然后递归( ...
- VFP 用 SPT 来发布一条 SELECT 到一个新的 SQL Server 表
为了发布一条 SQL SELECT 语句来创建一个新的 SQL Server 表, SQL Server 数据库的 select into/bulkcopy 选项必须是可用的. 在默认情况下, 对于 ...
- Docker / Kubernetes 镜像源
由于众所周知的原因, Docker 官方镜像仓库和 Google 镜像仓库在国内访问速度很慢或者不可用.这样就给我们在部署和使用 Kubernetes 时带来了极大的不便.今天我们就来介绍几种方法,可 ...
- linux硬盘分区、格式化、挂载超详细步骤(fdisk/parted))
- asp.net MVC项目开发之统计图echarts后台数据的处理(三)
前台显示的东西,有相应的文档很容易修改,后台传递数据方式才是我们最关心的 首先要记住,我们一步数据使用的是post,那么后台代码我们要给方法加上 [HttpPost]注解 不然异步没有效果 下面上代码 ...
- 在React中使用WebUploader实现大文件分片上传的踩坑日记!
前段时间公司项目有个大文件分片上传的需求,项目是用React写的,大文件分片上传这个功能使用了WebUploader这个组件. 具体交互是: 1. 点击上传文件button后出现弹窗,弹窗内有选择文件 ...
- 作为一个Java工程师,你应该要知道SPI机制
什么是 SPI SPI是Service Provider Interface的简称,是JDK默认提供的一种将接口和实现类进行分离的机制.这种机制能将接口和实现进行解耦,大大提升系统的可扩展性. SPI ...
- 将jsp页面转化为图片或pdf(一)(qq:1324981084)
java高级架构师全套vip教学视频,需要的加我qq1324981084 在项目中遇见了将jsp页面转化为pdf的问题,试过itext,但是itext需要标准的html代码,我的页面中的一些属性是it ...