文章目录
1. C++文件操作
比较简单,记录一下常用的文件操作指令
#include <iostream>
#include <string>
#include <fstream> /* 首先要包含头文件 */
using namespace std;
class Person
{
public:
char name[64];
int age;
};
void operator<< (ostream & cout,Person p)
{
cout << p.name << " " << p.age << endl;
}
void test_1(void)
{
/* 写文本文件操作*/
ofstream ofs; /* 创建流对象 */
ofs.open("test.txt", ios::out); /* 第一个参数是文件名,第二个参数mode是打开方式(读、写之类的),mode为out,写文件 */
ofs << "name: lll" << endl;
ofs << "age: 18" << endl;
ofs.close(); /* 关闭文件 */
/* 读文本文件操作 */
ifstream ifs;
ifs.open("test.txt", ios::in);
if(!ifs.is_open())
{
cout << "打开文件失败" << endl;
return;
}
string buf;
while(getline(ifs, buf))
{
cout << buf <<endl;
}
ifs.close();
/* 写二进制文件 */
ofs.open("person.txt", ios::out | ios::binary); /* 写二进制文件,需要多添加一个mode*/
Person p = {"lagransun", 18};
ofs.write((const char *)&p, sizeof(Person)); /* write第一个参数必须得是const char* */
ofs.close();
/* 读二进制文件 */
ifs.open("person.txt", ios::in | ios::binary);
if(!ifs.is_open())
{
cout << "打开文件失败" << endl;
return;
}
Person p1;
ifs.read((char *)&p1, sizeof(Person));
cout << p1;
ifs.close();
}
int main(void)
{
test_1();
return 0;
}
代码运行结果如下