这是她 发表于 2020-5-24 21:35:09

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]
查看完整版本: C++旅程第九站----二进制文件