二进制文件的使用
来源:互联网 发布:vf表单关于淘宝设计 编辑:程序博客网 时间:2024/06/02 02:15
二进制文件的使用
1、用成员函数“read”“write”读写二进制文件
istream& read(char *buffer,int len)
ostream& write(const char *buffer,int len)
例如:
a.write(p1,50);
b.read(p2,30);
------------------------------------------------------------------------
2、实例:将整数写入二进制文件(08_008_1.cpp)
//二进制文件-基本操作-写入文件
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
int a=20000;
int b=30;
ofstream file("f8.dat",ios::binary);
if(!file)
{
cout<<"file error!"<<endl;
exit(1);
}
else
{
file.write((char*)&a,sizeof(a));
file.write((char*)&b,sizeof(b));
file.close();
}
// cout<<sizeof(a)<<endl;
// cout<<a<<endl;
return 0;
}
说明:&a是整数a的地址,但它是指向整数的指针,用(char*)将其强制转换为字符指针
-------------------------------------------------------------------------------
3、实例:将上例中文件中的二进制数据读出来,并在显示器上显示(08_008_2.cpp)
//二进制文件-基本操作-从文件读出
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
int main()
{
int a,b;
ifstream file("f8.dat",ios::binary);
if(!file)
{
cout<<"file error!"<<endl;
exit(1);
}
else
{
file.read((char*)&a,sizeof(a));
file.read((char*)&b,sizeof(b));
file.close();
}
cout<<a<<endl;
cout<<b<<endl;
return 0;
}
-------------------------------------------------------------------------------
4、与二进制文件指针有关的流成员函数
对二进制文件的位置标记进行控制
(1)gcount()
得到最后一次输入所读入的字节数
(2)tellg()、tellp()
得到输入/输出文件位置标记的当前位置
(3)seekg(文件中的位置)、seekp(文件中的位置)
将输入/输出文件位置标记移到指定位置
(4)seekg(位移量,参照位置)、seekp(位移量,参照位置)
以参照位置为基础,移动若干字节
参照位置:
ios::beg 文件开关,默认值
ios::cur 位置标记当前的位置
ios::end 文件尾
(5)实例
infile.seekg(100); 正向移到100字节的位置
infile.seekg(-50,ios::cur); 从当前位置反向移50字节
infile.seekg(-75,ios::end); 从文件尾反向移75字节
四、字符串与文件归纳
0、问题:
(1)字符串加解密
(2)文件句柄 ofstream file(“f1.txt”,ios::out)
(3)如何读取带空格的字符串(键盘、文件)
(4)如何判断文件尾:file.eof()(判断get()、getline()等函数的返回值)
(5)文件名的参数化问题(用字符指针表示文件名字符串)
(6)文件操作的错误处理(if(!f) exit(1))
(7)文件的关闭问题
(9)文本文件与二进制文件的区别:存储空间、访问速度
(10)如何删除一个文件(使用DOS命令)
1、文本文件
(1)多行(如词典)
(2)单字符串+单行文件(数据解决方案一)
(3)操作
写:file<<s file.put(c)
读:getline(file,s)
2、二进制文件
(1)数据库结构:容器+二进制文件
(2)访问形式:
磁盘操作,随机存取(数据解决方案二)
内存操作,一次存取(数据解决方案三)
(3)操作
写:seekp(偏移位置,参照位置)
file.write(char* 变量名,变量所占空间)
读:seekg(偏移位置,参照位置)
file.read(char* 变量名,变量所占空间)
注意:读写之前要先定位指针
- 二进制文件的使用
- 使用strings查看二进制文件的字符串
- 使用独立的node windows二进制文件
- python使用struct进行二进制文件的读写
- 使用Java操作二进制文件
- 使用Java操作二进制文件
- 使用UltraEdit 拷贝二进制文件
- 使用Java操作二进制文件
- 使用hexdump 查看二进制文件
- 使用vim编辑二进制文件
- 使用 od 显示二进制文件
- LabVIEW中使用二进制文件
- 使用C编译器产生清晰的二进制文件 (i386+)
- 使用nasm和gcc生成无格式的二进制文件
- 使用ultraEdit拷贝二进制文件内容时的异常
- 使用nasm和gcc生成无格式的二进制文件
- 使用ADO实现vc中二进制文件数据的存取
- C#的二进制文件操作
- nyoj 1038 纸牌游戏
- Codeforces 455C Civilization 树的直径+并查集
- vmware上pfSense安装说明
- c++多态的案例分析
- Android - 文件读写操作 总结 .
- 二进制文件的使用
- 实现自定义Toast里的文字跟图片
- Exadata虚拟机_1
- java学习笔记之java的运行机制
- Codeforces 455A Boredom 取数字的dp
- android annotations Rest Get GsonHttpMessageConverter 获取服务端简单数据
- apache在程序开发阶段的一些应用小知识
- 梯度下降法 求解回归问题
- Android之Handler用法总结