[C++学习记录]---实现写文件和读文件

前言

C++中写文件和读文件基本原理。都是通过文件流对象来实现的,可以通过适当的打开模式来控制文件的读写行为。

正文

01-写文件

具体代码解释如下:

包含头文件: 首先需要包含 **<fstream>**头文件,这个头文件包含了对文件流的定义和操作。

创建文件流对象: 创建一个文件流对象,通常可以使用 **ofstream**类来写文件。例如:

打开文件: 使用文件流对象的**open()** 函数打开一个文件,并指定文件名以及打开模式。常见的打开模式有:a、ios::out:写入模式,若文件不存在则创建,若存在则清空内容。b、ios::app:追加模式,若文件不存在则创建,若存在则在末尾追加内容。c、ios::trunc:若文件已存在,将其内容清空。这是默认的模式。

写入数据: 使用文件流对象的输出操作符 << 向文件中写入数据,就像向标准输出流 **cout**中写入数据一样。例如:

关闭文件: 写入完成后,使用文件流对象的**close()** 函数关闭文件。这一步很重要,因为关闭文件会刷新缓冲区并确保数据被写入文件。​

cpp 复制代码
#include <iostream>
using namespace std;
#include<fstream>

// 文本文件  写文件

void test01()
{
	// 1、包含头文件 fstream

    // 2、创建流对象
	ofstream ofs;
	// 3、打开方式
	ofs.open("test.txt", ios::out); // out 打开时候写入文件  不指定路径,生成在项目同级目录

	// 4、写入内容
	ofs << "姓名: 张三" << endl;

	// 5、关闭
	ofs.close();
}


int main()
{

	test01();


	system("pause");
	return 0;
}

得到test.txt文件位于项目文件中:

02-读文件

具体原理如下:

包含头文件: 同样需要包含 <fstream> 头文件。

创建文件流对象: 创建一个文件流对象,通常可以使用 ifstream 类来读文件具体原理

打开文件: 使用文件流对象的 open() 函数打开一个文件,并指定文件名以及打开模式。常见的模式有:**ios::in:**读取模式。

读取数据: 使用文件流对象的输入操作符 >>getline() 函数从文件中读取数据,就像从标准输入流**cin** 中读取数据一样。

关闭文件: 读取完成后,同样需要使用文件流对象的**close()**函数关闭文件。这一步同样很重要,因为关闭文件会释放资源。

cpp 复制代码
#include <iostream>
using namespace std;
#include<fstream>

// 文本文件  写文件

void test01()
{
	// 1、包含头文件 fstream

	// 2、创建流对象
	ifstream ifs;
	// 3、打开方式
	ifs.open("test.txt", ios::in); // in 打开时候读文件
	// 判断打开  ifs.is_open() 返回的是一个布尔值
	if (!ifs.is_open())
	{
		cout << "文件打开失败" << endl;
		return;
	}
	// 4、读取内容方式
	// 1、
	char buf[1024] = { 0 };
	while (ifs>>buf)
	{
		cout << buf << endl;
	}

	// 5、关闭
	ifs.close();
}


int main()
{

	test01();
	system("pause");
	return 0;
}

运行结果如下:

相关推荐
炸膛坦客3 小时前
单片机/C/C++八股:(二十六)IIC 专题(I²C)---- 上集
c语言·c++·单片机
旖-旎3 小时前
LeetCode 518:零钱兑换||(完全背包)—— 题解
c++·算法·leetcode·动态规划·背包问题
灯澜忆梦3 小时前
GO_并发编程---定时器
开发语言·后端·golang
-银雾鸢尾-3 小时前
C#中的StringBuilder相关方法
开发语言·c#
Henry Zhu1234 小时前
C++中的特殊成员函数与智能指针
c++
-银雾鸢尾-4 小时前
C#中结构体与类的区别;抽象类与接口的区别
开发语言·c#
世人万千丶4 小时前
参数管理_Flutter在鸿蒙平台路由参数最佳实践
学习·flutter·华为·harmonyos·鸿蒙
大模型码小白5 小时前
【Python零基础教程】继承、多态与魔法函数:面向对象编程三大核心特性详解
java·大数据·开发语言·人工智能·python·ai编程
_wyt0016 小时前
多重背包问题详解
c++·背包dp
段一凡-华北理工大学7 小时前
向量数据库实战:选型、调优与落地~系列文章12:文本分块策略实战:chunk_size 怎么选?重叠多少?
开发语言·数据库·后端·oracle·rust·工业智能体·高炉智能化