马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 这是她 于 2020-5-24 21:34 编辑
Happy people build their inner world.Uhappy people blame their outer world. -T.Harv Eker
二进制文件 ——以二进制方式对文件进行读写操作
二进制文件打开方式->ios::binary
写文件:
二进制写文件主要利用流对象调用成员函数write,以二进制方式写入对象
函数原型:ostream& write(const char * buffer ,int len);
buffer->字符指针,指向内存中的一段存储空间
len->读写的字节数#include<iostream>
#include<fstream>//头文件
using namespace std;
class Test11
{
public:
char m_subject[64];
int m_grade;
};
void test()
{
//创建流对象
ofstream p1;//只创建一个流对象
//ofstream p1("test2.txt",ios::out | ios::binary);//在创建流对象的时候,就打开文件
//打开文件,并且判断是否打开成功
p1.open("test2.txt",ios::out | ios::binary);
//写文件
Test11 t = {"语文",88};
p1.write((const char *)&t,sizeof(t)); //write函数将字符指针t所给出的地址开始的t长度个字节的内容不加转换地写到test2文件中。
//const->是因为不允许通过指针改变其指向数据的值
//关闭文件
p1.close();
}
int main()
{
test();
return 0;
}
读文件:
二进制方式读文件主要利用流对象调用成员函数read
函数原型:istream& read(char * buffer,int len);
buffer->字符指针,指向内存中的一段存储空间
len->读写的字节数#include<iostream>
#include<fstream>//头文件
using namespace std;
class Test11
{
public:
char m_subject[64];
int m_grade;
};
void test()
{
//创建流对象
ifstream p1;
//打开文件,并且判断是否打开成功
p1.open("test2.txt",ios::in | ios::binary);
if(!p1.is_open())
{
cout << "文件打开失败!!!!" << endl;
return;
}
//写文件
Test11 s;
p1.read((char *)&s, sizeof(s));//将指定数目的字节读入内存,依次存放在以地址&s开始的存储空间中
cout << "科目: " << s.m_subject << " 成绩: " << s.m_grade << endl;
//关闭文件
p1.close();
}
int main()
{
test();
return 0;
}
渣渣一个求指教
|