文件操作步骤:
1, 包含头文件#include<fstream>
2, 创建流对象:ofstream ofs
3, 打开文件:ofs.open("文件路径", 打开方式)
4, 写数据:ofs << "写入数据"
5, 关闭文件:ofs.close()
打开方式:ios::in 读文件打开, ios:out,写文件打开, ios::ate, 打开文件, 定位到尾部
ios::trunc, 如果文件存在先删除, 在创建, ios::binary, 二进制文件
1, 写文件
cpp
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <iterator>
#include <set>
#include <fstream>
using namespace std;
void test()
{
ofstream aaa;
aaa.open("test.txt", ios::out);
aaa << "张三, 28";
aaa.close();
}
int main()
{
test();
system("pause");
return 0;
}
2, 读文件
cpp
ifstream aaa;
aaa.open("test.txt", ios::in);
//第一种方式
/*char buf [1024] = { 0 };
while (aaa >> buf)
{
cout << buf;
}*/
//第二种方式
/*char buf[1024] = { 0 };
while (aaa.getline(buf, sizeof(buf)))
{
cout << buf;
}*/
//第三种方式
/*string buf;
while (getline(aaa, buf))
{
cout << buf;
}*/
//第四种方式
char c;
while ((c = aaa.get()) != EOF)
{
cout << c;
}
3, 二进制文件
3-1, 写文件
cpp
class Person
{
public:
char m_name[64];
int m_age;
};
void test()
{
Person p = { "张三", 18 };
ofstream aaa("test1.txt", ios::out | ios::binary);
//aaa.open("test1.txt", ios::out | ios::binary);
aaa.write((const char*)&p, sizeof(Person));
aaa.close();
}
3-2, 读文件
cpp
class Person
{
public:
char m_name[64];
int m_age;
};
void test()
{
Person p;
ifstream aaa("test1.txt", ios::out | ios::binary);
//aaa.open("test1.txt", ios::out | ios::binary);
aaa.read((char*)&p, sizeof(Person));
cout << p.m_name << endl;
cout << p.m_age << endl;
aaa.close();
}