**文件操作的三大类:
1、ofstream:写操作
2、ifstream:读操作
3、fstream:读写操作
**
1.1写文件
写文件操作步骤:
1、包含头文件
#include
2、创建流对象
ofstream ofs;
3、打开文件
ofs.open(“文件路径”,打开方式);
4、写数据
ofs<<“写入的数据”;
5、关闭文件
ofs.close();
文件打开方式:
打开方式 | 解释 |
---|---|
ios::in | 为读文件而打开文件 |
ios::out | 为写文件而打开文件 |
ios::ate | 初始位置:文件尾 |
ios::app | 追加方式写文件 |
ios::trunc | 如果文件存在先删除,再创建 |
ios::binary | 二进制方式 |
注意:文件打开方式可以配合使用,利用|操作符
例如:用二进制方式写文件 ios::binary | ios:: out
例子:
class Person
{
public:
char m_Name[64];
int m_Age;
};
//二进制文件 写文件
void test01()
{
//1、包含头文件
//2、创建输出流对象
ofstream ofs("person.txt", ios::out | ios::binary);
//3、打开文件
//ofs.open("person.txt", ios::out | ios::binary)//等同于第二步 可以分开写,也可以一起写
Person p = { "张三",18 };
//4、写文件
ofs.write((const char*)&p, sizeof(p));
//5、关闭文件
ofs.close();
}
//二进制读文件
void test02()
{
//1、包含头文件
//2、创建流对象
ifstream ifs;
//3、打开文件 判断文件是否打开
ifs.open("person.txt", ios::in | ios::binary);
if (!ifs.is_open()) {//返回的是布尔类型加!取反
cout << "文件打开失败了" << endl;
return;
}
//4、读文件
Person p;
ifs.read((char*)&p, sizeof(Person));
cout << "姓名" << p.m_Name << " 年龄:" << p.m_Age << endl;
//5、关闭文件
ifs.close();
}
int main() {
test02();
system("pause");
return 0;
}