文件操作
#include<iostream>
#include<fstream>
#include<string>
using namespace std;
class Person{
public:
char m_Name[64];
int m_Age;
};
int main(){
//文本文件操作
//写文件
//1.包含头文件 fstream
//2.创建流对象
ofstream ofs;
//3.指定打开方式
ofs.open("test.txt",ios::out);//不指定路径会创建在项目文件夹下
//这里注意:读文件打开方式:ios::in
//写文件打开方式:ios::out
//追加方式写文件:ios:app
//如果文件存在就先删除再创建:ios::trunc
//二进制方式:ios::binary
//4.写内容
ofs<<"name"<<endl;
ofs<<"Jason"<<endl;
//5.关闭文件
ofs.close();
//读文件
//1.头文件
//2.创建流对象
ifstream ifs;
//3.打开文件,并判断是否打开成功
ifs.open("test.txt",ios::in);
if(!ifs.is_open()){
cout<<"fail to open"<<endl;
return 0;
}
//4.读数据
char buf[1024]={0};
while(ifs>>buf){
cout<<buf<<endl;
}
//或者
char buf1[1024]={0};
while(ifs.getline(buf,sizeof(buf))){
cout<<buf<<endl;
}
//或者
string buf2;
while(getline(ifs,buf2)){
cout<<buf<<endl;
}
//或者
char c;
while((c=ifs.get())!=EOF){
cout<<c;
}
//5.关闭文件
ifs.close();
//二进制文件
//写文件
ofstream ofs1;
ofs1.open("person.txt",ios::out|ios::binary);
Person p={"Jason",18};
ofs1.write((const char*)&p,sizeof(Person));//这里将Person类型强转为char
ofs1.close();
//读文件
ifstream ifs1;
ifs1.open("person.txt",ios::in|ios::binary);
if(!ifs1.is_open()){
cout<<"文件打开失败"<<endl;
return 0;
}
Person p1;
ifs1.read((char*)&p,sizeof(Person));
ifs1.close();
return 0;
}