前言
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;
}
运行结果如下: