博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++语言基础 例程 二进制文件应用案例
阅读量:5936 次
发布时间:2019-06-19

本文共 4378 字,大约阅读时间需要 14 分钟。

  

系统升级第一步:转换现有数据格式(附:数据文件)

#include 
#include
#include
using namespace std;typedef struct{ int NO; char name[8]; int chinese; int math; int english; int Comprehensive; int total;} Student; //高考学生信息const int maxNum = 10000;void display(Student*, int);int main(){ ifstream asciiFile("asciidata.txt", ios::in); if(!asciiFile) { cerr<<"cannot open ascii file!"<
>students[stuNum].NO; asciiFile>>students[stuNum].name; asciiFile>>students[stuNum].chinese; asciiFile>>students[stuNum].math; asciiFile>>students[stuNum].english; asciiFile>>students[stuNum].Comprehensive; asciiFile>>students[stuNum].total; stuNum++; } asciiFile.close(); display(students, stuNum); //写入到二进制文件 int i; ofstream binaryFile("binarydata.dat", ios::out|ios::binary); if(!binaryFile) { cerr<<"cannot open binary file!"<
用二进制文件完成业务
#include 
#include
#include
using namespace std;typedef struct{ int NO; char name[8]; int chinese; int math; int english; int Comprehensive; int total;} Student; //高考学生信息void display(Student*, int);void sort(Student*, int);int main(){ int stuNum = 0; Student *students; fstream binaryFile("binarydata.dat", ios::in|ios::out|ios::binary); if(!binaryFile) { cerr<<"cannot open binary file!"<
s[j+1].NO) { temp=s[j]; s[j]=s[j+1]; s[j+1]=temp; } return;}
索引文件的建立
#include 
#include
#include
using namespace std;typedef struct{ int NO; char name[8]; int chinese; int math; int english; int Comprehensive; int total;} Student; //高考学生信息typedef struct{ int NO; long offset; //数据在文件中的偏移量} StudentIndex; //高考学生索引void createIndex();void writeIndex(StudentIndex *si, int n);int main(){ createIndex(); return 0;}/*功能:创建索引*/void createIndex(){ int stuNum; StudentIndex *studentsIndex; //索引表的起始地址 Student student; ifstream binaryFile("binarydata.dat", ios::in|ios::binary); if(!binaryFile) { cerr<<"cannot open binary file!"<
studentsIndex[j+1].NO) { temp=studentsIndex[j]; studentsIndex[j]=studentsIndex[j+1]; studentsIndex[j+1]=temp; } //将建好的索引表通过文件存储 writeIndex(studentsIndex, stuNum); return;}/*功能:将索引写入文件参数:si - 索引表起始地址;n - 考生人数,索引记录条数*/void writeIndex(StudentIndex *si, int n){ //打开文件 ofstream indexFile("binarydata.idx", ios::out|ios::binary); if(!indexFile) { cerr<<"cannot open index file!"<
索引文件的利用
#include 
#include
#include
using namespace std;typedef struct{ int NO; char name[8]; int chinese; int math; int english; int Comprehensive; int total;} Student; //高考学生信息typedef struct{ int NO; long offset; //数据在文件中的偏移量} StudentIndex; //高考学生索引//为方便起见,下面变量用全局变量表示。若用局部变量,各模块间通过引用传递参数亦可fstream dataFile, indexFile;int stuNum, maxNum;StudentIndex *studentsIndex; //索引表入口地址//函数声明void createIndex();void writeIndex(StudentIndex *si, int n);void init();void work();int chooseInMenu();void done();void displayByIndex();void displayStudent(Student &s);int main(){ char yn; cout<<"需要重建索引吗?(Y/N)"; cin>>yn; if('Y'==yn||'y'==yn) createIndex(); init(); work(); done(); return 0;}/*功能:创建索引*/void createIndex(){ int stuNum; StudentIndex *studentsIndex; //索引表的起始地址 Student student; ifstream binaryFile("binarydata.dat", ios::in|ios::binary); if(!binaryFile) { cerr<<"cannot open binary file!"<
studentsIndex[j+1].NO) { temp=studentsIndex[j]; studentsIndex[j]=studentsIndex[j+1]; studentsIndex[j+1]=temp; } //将建好的索引表通过文件存储 writeIndex(studentsIndex, stuNum); return;}/*功能:将索引写入文件参数:si - 索引表起始地址;n - 考生人数,索引记录条数*/void writeIndex(StudentIndex *si, int n){ //打开文件 ofstream indexFile("binarydata.idx", ios::out|ios::binary); if(!indexFile) { cerr<<"cannot open index file!"<
>i; if(i>=0 && i<=5) break; else cout<<"请重新选择功能\n"<

转载地址:http://ccntx.baihongyu.com/

你可能感兴趣的文章
关于vuex购物车实现的原理
查看>>
Android 自定义 View 实战之 PuzzleView
查看>>
js 数组排序
查看>>
从零开始学前端动画 —— 简单的特效登录
查看>>
如何更愉快地使用rem —— 别说你懂CSS相对单位
查看>>
Flutter中管理路由栈的方法和应用
查看>>
Android MVP模式 简介
查看>>
Python并行编程
查看>>
Qt应用自动化系列教程-01快速入门
查看>>
『高级篇』docker之Python开发信息服务(11)
查看>>
Decoding之Json解析
查看>>
Docker 私仓建设 Registry + Portainer
查看>>
修饰符final和static浅析
查看>>
用小猪佩奇说明Javascript的原型和原型链
查看>>
优雅的构建 Android 项目之磁盘缓存(DiskLruCache)
查看>>
天下无难试之HashMap面试刁难大全
查看>>
[MetalKit]11-Ray-tracing-in-a-Swift-playground2射线追踪2
查看>>
蚂蚁金服面试经历-临场发挥
查看>>
消息总线系统高级技术要点深度认知-kafka 商业环境实战
查看>>
Spring Cloud 入门教程 - 搭建配置中心服务
查看>>