目录
前言:
对于输入输出流解释:
在C++中,输入输出是同流来完成的。
因此我们可以把输入和输出操作看成字符序列在源、目标以及对象之间的流动。
为什么要学习文件操作?有什么用?
因为大部分数据临时数据,在程序执行完毕会销毁,有时候需要有一些重要数据保存,所以需要在文件里进行保存
通过文件使数据持久化,而文件操作时要包含一个头文件——> <fstream>
分类:
分为文本文件和二进制文件
文本文件是文件以ASCII码的形式存储在计算机中
二进制文件是数据以二进制形式存储在计算机中,用户一般不能读懂,但是可以正常读取出来
操作文件的三大类流
1.文本文件:
2.二进制文件
如何用二进制的方式对这个文件进行读写操作?
打开方式用ios::binary
注意:读出来为乱码但是文件看不懂没关系
2.1写文件
二进制可以操作很多数据类型
代码示例:
void test1() {
	ofstream o; //创建流对象
	o.open("testbin.txt", ios::out | ios::binary);  //二进制方式打开
    //这里上面12步可以合为一步
    //ofstream ofs("person.txt", ios::out | ios::binary);
	Person p = { "小红",12 }; 
	//把对象写入到o
	o.write((const char*)&p, sizeof(p));
	//关闭文件
	o.close();
}
 
2.2读取文件
代码示例:
#define  _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<fstream>
using namespace std; 
//避免用string,因为string实际上是一个类而不是类型,实现的东西有限
class person
{
public:
    char m_name[12];
    int m_age;
};
void test1()
{
    //包含头文件
    //创建流对象
    ifstream ifs;
    //打开文件
    ifs.open("person.txt", ios::in | ios::binary);
    if (!ifs.is_open()) {
        cout << "文件打开错误" << endl;
        return;
    }
    //读取文件
    person p;
    ifs.read((char*)&p, sizeof(person));//这里不用const,因为读取文件不需要防止更改文件内容
    cout << "年龄:"<<p.m_age <<"姓名:" << p.m_name << endl;
    //关闭文件
    ifs.close();
}
int main()
{
    test1();
    system("pause");
    return 0;
} 

总结:
有关文件操作的内容就介绍完毕,感谢浏览,欢迎点赞收藏专栏,如有错误,请大佬指正,谢谢❀










