鱼C论坛

 找回密码
 立即注册
查看: 1371|回复: 0

[技术交流] C++旅程第九站----二进制文件

[复制链接]
发表于 2020-5-24 21:35:09 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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;
}
                                       渣渣一个求指教







本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-14 02:16

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表