#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。的更多相关文章

  1. 将两个列不同的DataTable合并成一个新的DataTable

    /// <summary>         /// 将两个列不同(结构不同)的DataTable合并成一个新的DataTable         /// </summary> ...

  2. 将两个数组相同index的value合并成一个新的value组成一个新的数组

    将两个数组相同index的value合并成一个新的value组成一个新的数组 前提: 这两个数组的长度相同 生成后的新数组长度也相同 返回值都是对象 把rows对象的key和value弄成两个数组, ...

  3. Java-Runoob-高级教程-实例-字符串:10. Java 实例 - 测试两个字符串区域是否相等-uncheck

    ylbtech-Java-Runoob-高级教程-实例-字符串:10. Java 实例 - 测试两个字符串区域是否相等 1.返回顶部 1. Java 实例 - 测试两个字符串区域是否相等  Java ...

  4. python之最强王者(10)———文件(File)、输入输出的基本操作

    1. Python 文件I/O 本章只讲述所有基本的的I/O函数,更多函数请参考Python标准文档. 2.打印到屏幕 最简单的输出方法是用print语句,你可以给它传递零个或多个用逗号隔开的表达式. ...

  5. ORA-01578: ORACLE 数据块损坏 (文件号 10, 块号 57896)ORA-01110: 数据文件 10: '/data/oradata/prod35.dbf'

    https://community.oracle.com/thread/3540795 概述 ------------- 数据库坏块(corruption) 的类型可以按照坏块所属对象的不同,分为用户 ...

  6. delphi 创建DBASE和FOXPRO两类DBF数据文件的差异

    delphi 创建DBASE和FOXPRO两类DBF数据文件的差异,主要有几点: 1.创建方法不同 DBASE的创建方法: Self.Table1.Close; Self.Table1.Active ...

  7. 如何定义让两个div横向排列

    方法一: 一般情况,默认的div是写一个换一行,那么如何定义两个div横向排列而不换行呢? div默认的display属性是block.所以每一个div都是新的一行,现在把display换成inlin ...

  8. 有两个序列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 * ...

  9. python将两个数组合并成一个数组的两种方法的代码

    内容过程中,把写内容过程中常用的内容收藏起来,下面的资料是关于python将两个数组合并成一个数组的两种方法的内容,希望能对小伙伴们有帮助. c1 = ["Red","G ...

随机推荐

  1. 用Java实现简单的网络聊天程序

    Socket套接字定义: 套接字(socket)是一个抽象层,应用程序可以通过它发送或接收数据,可对其进行像对文件一样的打开.读写和关闭等操作.套接字允许应用程序将I/O插入到网络中,并与网络中的其他 ...

  2. Altium Designer打印多块PCB到热转印纸上、拼板发给工厂

    接下来介绍的方法的优势有: 节省电脑性能(来自不同PCB文件的图案被放置时只在第1块会卡顿一小会儿,之后不再卡顿) 便于排版(拖放图案时绝不会改变图案内容,拖放图案时鼠标拖住的矩形框的尺寸与图案的尺寸 ...

  3. LeetCode 127. Word Ladder 单词接龙(C++/Java)

    题目: Given two words (beginWord and endWord), and a dictionary's word list, find the length of shorte ...

  4. 《自拍教程24》在Windows上配置环境变量

    我们说的环境变量,一般是指的是Path环境变量. 第一步:点击"我的电脑",右键,"属性" 第二步:点击"高级系统设置",弹出的窗口选&qu ...

  5. apache/tomcat安装过程略

    apache/tomcat安装过程略 一些变量 apache安装目录 APACHE_PREFIX=/Data/app/apache apache配置文件 APACHE_CONF=/etc/httpd/ ...

  6. C#设计模式学习笔记:(18)状态模式

    本笔记摘抄自:https://www.cnblogs.com/PatrickLiu/p/8032683.html,记录一下学习过程以备后续查用. 一.引言 今天我们要讲行为型设计模式的第六个模式--状 ...

  7. 定时器_在.net core3.0 webapi中添加自定义定时器功能

    前言:想在.net framework环境使用自定义定时器的话,参考我的另一篇文章:https://www.cnblogs.com/lxhbky/p/10242839.html 想在.net core ...

  8. #《Essential C++》读书笔记# 第七章 异常处理

    基础知识 异常处理机制有两个主要成分:异常的鉴定和发出,以及异常的处理方式.通常,不论是membe function和non-member function,都有可能产生异常以及处理异常.异常出现后, ...

  9. Java实体对象为什么要实现Serializable接口?

    前言 Java实体对象为什么一定要实现Serializable接口呢?在学JavaSE的时候有些实体对象不实现Serializable不是也没什么影响吗? 最近在学习mybatis的时候发现,老师写的 ...

  10. mysql必知必会--数 据 过 滤

    如何组合 WHERE 子句以建立功能更强的更高级的搜索条件?如何使用 NOT 和 IN 操作符? 组合 WHERE 子句 第6章中介绍的所有 WHERE 子句在过滤数据时使用的都是单一的条 件.为了进 ...