二进制文件的读写的相关的操作
以二进制的方式对文件进行读写操作
打开的方式要指定为 ios::binary
写文件
以二进制的方式写文件主要利用了流对象调用函数的成员 write()
函数的原型:
ostream&write(const char*buffer,int len);
参数解释: 字符指针的buffer指向内存中的一段存储空间,len是读写的字节数!!
#include<iostream>
#include<fstream>
using namespace std;
//二进制文件 写文件
class Person
{
public:
char name[20];//姓名
int age; //年龄
};
int test01()
{
//1.包含头文件
//2.创建流对象
ofstream outfile;
//3.打开文件
outfile.open("E:/T1.txt", ios::out | ios::binary);
//4.写文件
//文件打开的异常操作
if (!outfile.is_open())
{
cout << "文件打开异常";
return -1;
}
Person p = { "张三",19 };
outfile.write((const char*)&p, sizeof(Person));
outfile.close();
return 1;
}
int main()
{
test01();
return 0;
}
读文件
主要利用流对象调用函数的成员read
函数原型: istream&read(char*buffer,int len);
参数解释:字符指针buffer指向内存中的一段内存空间,len是读写的字节数
#include<iostream>
#include<fstream>
using namespace std;
int test11()
{
//1.包含头文件
//2.创建流对象
ifstream infile;
//3.打开文件 判断文件是否打开成功
infile.open("E:/T1.txt", ios::in | ios::binary);
if (!infile.is_open())
{
cout << "文件未能正常打开";
return -1;
}
//4.读文件
Person p;
infile.read((char*)&p, sizeof(Person));
cout << "姓名" <<" " << p.name << "年龄" <<" "<< p.age << endl;
//5.关闭文件
infile.close();
return 1;
}
int main()
{
test11();
return 0;
}
操作主要是一些简单的输入输出,适合于初学者的入门理解,有问题请自行忽略!