|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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;
- }
复制代码 渣渣一个求指教
|
|