C++旅程第九站----二进制文件
本帖最后由 这是她 于 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;
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;
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;
} 渣渣一个{:10_256:}求指教{:10_254:}
页:
[1]