写文件:
cpp
#include<iostream>
#include<fstream>
using namespace std;
void test01()
{
ofstream ofs;
ofs.open("test.txt",ios::out);
ofs<<"姓名:张三"<<endl;
ofs<<"性别:男"<<endl;
ofs<<"年龄:18"<<endl;
ofs.close();
}
int main()
{
test01();
}
读文件:
cpp
#include<iostream>
#include<fstream>
using namespace std;
void test01()
{
ifstream ifs;
ifs.open("test.txt",ios::in);
if(!ifs.is_open())
{
cout<<"文件打开失败"<<endl;
return;
}
//第一种方式:
char buf[1024]={0};
while(ifs>>buf)
{
cout<<buf<<endl;
}
//第二种方式:
char buf1[1024]={0};
while(ifs.getline(buf1,sizeof(buf1)))
{
cout<<buf1<<endl;
}
//第三种方式:
string buf2;
while(getline(ifs,buf2))
{
cout<<buf2<<endl;
}
//第四种方式:
char c;
while((c=ifs.get())!=EOF)
{
cout<<c;
}
ifs.close();
}
int main()
{
test01();
}
推荐使用第三种方式,代码量少,好记。
二进制写文件:
cpp
#include<iostream>
#include<fstream>
using namespace std;
class Person
{
public:
char m_Name[64];
int m_Age;
};
void test01()
{
ofstream ofs("person.txt",ios::out|ios::binary);
Person p={"张三",18};
ofs.write((const char*)&p,sizeof(Person));
ofs.close();
}
int main()
{
test01();
}
二进制读文件:
cpp
#include<iostream>
#include<fstream>
using namespace std;
class Person
{
public:
char m_Name[64];
int m_Age;
};
void test01()
{
ifstream ifs("person.txt",ios::in|ios::binary);
if(!ifs.is_open())
{
cout<<"文件打开失败"<<endl;
return;
}
Person p;
ifs.read((char*)&p,sizeof(Person));
cout<<"姓名:"<<p.m_Name<<" 年龄:"<<p.m_Age<<endl;
ifs.close();
}
int main()
{
test01();
}