目录
前言:
对于输入输出流解释:
在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;
}
总结:
有关文件操作的内容就介绍完毕,感谢浏览,欢迎点赞收藏专栏,如有错误,请大佬指正,谢谢❀