问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

有什么好的管理二进制文件的方法

发布网友 发布时间:2022-04-28 16:03

我来回答

1个回答

热心网友 时间:2022-06-19 15:04

快速读取二进制文件的方法如下:
1、打开文件。

打开文件可以有两种方式,第一种可以使用fstream类的构造函数。fstream file("test.dat",ios_base::in|ios_base::out|ios_base::app); 另外一种方法就是使用
open函数。fstream file;file.open("test.dat",ios_base::in|ios_base::out|ios_base::app);
这样就可以打开一个可读写的文件了。如果文件不存在的话,就会创建一个新文件并且以读写方式打开。这里需要说明一点,如果文件不存在的话,open函数中第二个参数必须包含ios_base::out|ios_base::app,否则就不能正确创建文件。

2、写文件。
先进性写文件的操作否则读一个空文件是没有意义的。
既然是写二进制文件可以向文件中写入一个整形值。写二进制字符只能使用write
函数。但是write函数的原形是write(const char * ch, int size)。第一个参数是char *
类型,所以需要把将要写入文件的int类型转换成char *类型。这里的转换困扰了我好几天,不过终于弄明白了。代码如下。int temp; file.write((char *)(&temp),sizeof(temp));
3、读文件。
可以写文件了,读文件就好办多了。读文件需要用到read函数。其参数和write
大致相同,read(const char * ch, int size)。要把内容读到int类型变量中同样涉及到一个类型转换的问题。和写文件一样。int readInt; file.read((char(&readInt),sizeof(readInt)); 这样文件中的int值就读入到int型变量
readInt中了。

4、文件指针。
在文件的读写过程中往往需要对文件进行选择性读取。所以需要进行文件指针的移动。这是需要用到seekg和seekp函数。在fstream类中有两个文件指针,一个是读取文件的指针
,一个是写文件的指针分别用tellg和tellp文件来取得指针的位置。同样seekg和seekp两个函数分别是对这两个指针进行移动的函数。这两个函数的参数都是一样的。先对几个枚举类型进行一下说明:
ios_base::beg ——文件开始位置ios_base::cur ——文件当前位置ios_base::end ——文件末尾位置下面以seekg为例说明一下指针移动的方法:file.seekg(3) ——指针移动到第三个字符的位置file.seekg(ios_base::beg) ——指针移动到文件开头file.seekg(ios_base::end) ——指针移动到文件末尾file.seekg(-3,ios_base::cur) ——
指针当前位置向前移动三个字符file.seekg(3,ios_base::cur) ——指针当前位置向后移动三个字符file.seekg(3,file.tellg()) ——指针当前位置向后移动三个字符file.seekg(file.tellg()+3) ——指针当前位置向后移动三个字符

5、对文件操作完毕后别忘了关闭文件。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
婴幼儿认知功能的主义转变出现在几岁 认知发展理论心理发展过程 如何判断相亲对象是否渣男呢? 游船怎么造句 mei字造句 赏阅怎么造句 张金战个人记事 空调扇怎么关 matlab怎么运行程序文件-matlab运行程序文件的方法教程 ios8.1.1怎么没有搜索栏了 怎样把音乐文件转换成二进制文件? 二进制数怎么转换成二进制码然后保存到文件中的?如图 在VB中,如何将二进制文件 转换为十六进制文件 咳出血是怎么回事? 哪儿都不痛突然咳出血来怎么回事 如何将二进制码转换回文本文件 咳嗽有血是怎么回事 如何用c语言.把文本文件转换成二进制文件 为什么突然咳嗽会咳出血? 如何将ascii格式的二进制文件转换成十进制文件 咳嗽出血是怎么回事?拜托各位大神 怎么把二进制文件转换成文本文件 咳出血是怎么回事 怎样把二进制文件转换为原来的文件 咳嗽出血是怎么回事? 如何将文件转换成二进制文件 咳嗽咳出血来是得了什么病? 痰中经常咳嗽有血是怎么回事? 二进制 读写文件 和 转换; 咳嗽咳出血是怎么回事? 光大银行信用卡卡费高达1188元怎么回事 用JavaScript做嵌入端的开发有可能吗 什么是嵌入式jsp ?有这个吗? 如何用javascript 搞定嵌入式开发 node.js可以做嵌入式开发吗 JavaScript网页开发与Java Web开发的区别与联系又是什么? 什么是JS语言? js文件中iframe是什么意思 如何防止衣服起皱? 天津失业保险缴费费率 衣服怎么叠放才不会皱,或者皱了怎么解决 怎么样叠衣服没有折痕而且不皱! 如何去除室内甲醛等有害物质 抖音里卖家的福利链接怎么设置不卡灯牌不能拍的 福建省失业保险费率 怎样去除屋里的甲醛? 糯玉米煮熟变黑还能吃吗 玉米发黑能吃吗 什么是黑甜糯玉米 黑糯玉米是转基因吗?