文件相关操作

文本文件

程序运行时产生的数据都属于临时数据,程序一旦运行结束都会被释放

通过文件可以将数据持久化

C++的文件操作需要包含头文件

文件分类

文本文件:文件以文本的ASCII码形式存储在计算机中

二进制文件:文件以文本的二进制形式存储在计算机中,用户一般不能直接读懂他们

打开文件的方式

ios::in 为读文件而打开文件

ios::out 为写文件而打开文件

ios::ate 初始位置:文件尾

ios::app 追加方式写文件

ios::trunc 如果文件存在先删除再创建

ios::binary 二进制形式

文件三种操作

ofstream:写操作

ifstream读操作

fstream:读写操作

写文件

cpp 复制代码
int main() {
	// 创建流对象
	ofstream ofs;
	// 打开文件,以写文件格式写文件
	ofs.open("mle.txt", ios::out);
	// 写文件内容
	ofs << "姓名:张三" << endl;

	ofs.close();
}

读文件

cpp 复制代码
int main() {
	// 创建流对象
	ifstream ifs;
	// 打开文件,以读文件打开文件
	ifs.open("mle.txt", ios::in );
	// 写文件内容
	char buf[1024] = { 0 };

	// 方法一
	while (ifs>>buf) {
		cout << buf << endl;
	}
	// 方法2
	while (ifs.getline(buf, sizeof(buf))) {
		cout << buf << endl;
	}
	// 方法3
	string buf;
	while(getline(ifs, buf)) {
		cout << buf << endl;
	}

	char c;
	while ((c = ifs.get()) != EOF) {
		cout << c;
	}
	ifs.close();
}

二进制文件

写文件

cpp 复制代码
class Person {
public:
	string name;
};

int main() {
	ofstream ofs;
	ofs.open("person.txt", ios::out | ios::binary);
	Person p = { "zhangsan" };
	// 把p写入文件,写入大小为sizeof(Person)
	ofs.write((const char *)&p,sizeof(Person));
	ofs.close();
}

读文件

cpp 复制代码
class Person {
public:
	string name;
};

int main() {
	ifstream ifs;
	ifs.open("person.txt", ios::in | ios::binary);
	Person p ;
	ifs.read((char*)&p, sizeof(Person));

	ifs.close();
	
}
相关推荐
Z1Jxxx12 小时前
01序列01序列
开发语言·c++·算法
坚定学代码13 小时前
基于观察者模式的ISO C++信号槽实现
开发语言·c++·观察者模式·ai
ha204289419413 小时前
Linux操作系统学习记录之---TcpSocket
linux·网络·c++·学习
AI视觉网奇15 小时前
ue5 插件 WebSocket
c++·ue5
左直拳15 小时前
将c++程序部署到docker
开发语言·c++·docker
恒者走天下15 小时前
AI智能体通讯项目(底层AI通讯协议实现)
c++
英雄各有见15 小时前
Chapter 5.1.1: 编写你的第一个GPU kernel——Cuda Basics
c++·gpu·cuda·hpc
梵尔纳多15 小时前
OpenGL着色器语言(GLSL)
c++·opengl·着色器
net3m3315 小时前
单片机屏幕多级菜单系统之当前屏幕号+屏幕菜单当前深度 机制
c语言·c++·算法
mmz120715 小时前
二分查找(c++)
开发语言·c++·算法