C++文件操作详细使用方法讲解

目录

传送门

进入正题

fstream的使用☀️

写文件

1.包含头文件1⃣️

2.创建流对象2⃣️

3.打开文件3⃣️

4.写数据4⃣️

5.关闭文件5⃣️

实例1⃣️

读文件

1.包含头文件1⃣️

2.创建流对象2⃣️

3.打开文件 并判断是否打开成功3⃣️

4.读数据4⃣️

5.关闭文件5⃣️

示例1⃣️

二进制文件

写文件1⃣️

读文件2⃣️

最后总结,文件操作基本5步⌚️

练习一下

最后


传送门

C++多线程6000字详解 传送门

84行代码实现洛谷占卜功能 传送门

C++获取当前时间 传送门​​​​​​

C++深度优先搜索详解 传送门

C++指针最全总结 ​​​​​​传送门​​​​​​

以后还会分享更多c++内容

期待和大家一起进步!❤️❤️❤️

进入正题

好啦,咱们的 废话  无关紧要的话 就说到这里了,直接进入正题

程序运行时产生的数据都属于临时数据,

程序一旦运行结束都会被释放,通过文件可以将数据持久化。

举个例子你下载了一个游戏,你玩了一天,打到了50关

如果这个游戏有将数据持久化的代码(也就是存档),你第二天再次打开游戏时,你会发现你的记录还在第50关。

如果这个游戏没有将数据持久化的代码,你第二天再次打开游戏时,你会发现你的记录回到了第一关(欲哭无泪)

所以,一个实用的程序有数据持久化的代码是很重要的。

fstream的使用☀️

C++中对文件操作需要包含头文件

文件类型分为两种:

  1. 文本文件:文本文件的ASCII码形式存储在计算机中
  2. 二进制文件:文本文件的 二进制 形式存储在计算机中,用户一般不能直接读懂它们

操作文件的三大类:

  1. ofstream:写操作
  2. ifstream:读操作
  3. fstream:读写操作

写文件

写文件步骤如下:

1.包含头文件1⃣️

#include


2.创建流对象2⃣️

ofstream ofs;

注意,这里的ofs不是固定的对象名,这个对象名的命名规则与C++变量命名规则相同。


3.打开文件3⃣️

ofs.open("文件路径",打开方式);

这里要注意,文件路径必须是一个字符串,不可以是string变量。


4.写数据4⃣️

ofs<<"写入的数据";

注意,这里的写入数据可以为所有类型的变量或一个字符串


5.关闭文件5⃣️

ofs.close();

文件打开方式:
ios::in   : 为读文件而打开文件
ios::out  :  为写文件而打开文件
ios::app  :  初始位置:文件尾
ios::app :   追加方式写文件
ios::trunc  :  如果文件存在先删除,在创建
ios::binary  :  二进制方式
注意,文件打开方式可以配合使用,利用 | 操作符
例如:用二进制方式写文件 ios::out | ios::binary


实例1⃣️

#include
#include
using namespace std;
#include    //头文件包含

//文本文件 - 写文件

void text01()
{
    //1.包含头文件 fstream

    //2.创建流对象
    ofstream ofs;        // o - 写 f - 文件 stream - 流

    //3.指定打开方式
    ofs.open("text.txt", ios::out);

    //4.写内容
    ofs << " 姓名:张三" << endl;
    ofs << " 年龄:18 " << endl;
    ofs << " 性别:男 " << endl;

    //5.关闭文件
    ofs.close();

}
int main()
{
    text01();
    
    return 0;
}


总结:

文件操作必须包含头文件 fstream
读文件可以利用ofstream 或者 fstream类
打开文件时候需要制定操作文件的路径,以及打开方式
利用 << 可以向文件中写数据
操作完毕,要关闭文件


读文件

读文件与写文件步骤相似。

1.包含头文件1⃣️

#include


2.创建流对象2⃣️

ifstream ifs;

注意,这里的对象名同上面,也不是固定的。


3.打开文件 并判断是否打开成功3⃣️

ifs.open("文件路径",打开方式);

文件路径不能为变量名


4.读数据4⃣️

ifs<<变量名/字符串;


5.关闭文件5⃣️

ifs.close();


示例1⃣️


总结:

读文件可以利用ifstream 或者 fstream类
利用 is_open 函数可以判断文件是否打开成功
操作完毕,要关闭文件


二进制文件

以二进制的方式对文件进行读写操作

打开方式要指定为 ios::binary

写文件1⃣️

二进制方式写文件主要利用流对象调用成员函数write

函数原型: ostream& write(const char *buffer, int len)

参数解释:字符指针 buffer 指向内存中一段存储空间。len 是读写的字节数

示例:
总结:

文件输出流对象 可以通过 write 函数,以二进制方式写数据


读文件2⃣️

二进制方式写文件主要利用流对象调用成员函数read

函数原型: istream& read(char *buffer, int len)

参数解释:字符指针 buffer 指向内存中一段存储空间。len 是读写的字节数

示例:

#include
#include
using namespace std;
#include

//二进制文件-读文件
class Person
{
public:

    string m_Name;    //姓名
    int m_Age{};    //年龄
};
void text01()
{
    //1.包含头文件 fstream

    //2.创建流对象
    ifstream ifs;            //ifstream ifs("Person.txt", ios::out | ios::binary);

    //3.打开文件 并且判断是否打开成功
    ifs.open("Person.txt", ios::in | ios::binary);
    if (!ifs.is_open())
    {
        cout << "文件打开失败" << endl;
        return;
    }

    //4.写内容
    Person p;
    ifs.read((char*)&p, sizeof(Person));
    cout << "姓名: " << p.m_Name << "  年龄:" << p.m_Age << endl;

    //5.关闭文件
    ifs.close();
}
int main()
{
    text01();
    return 0;
}



总结:

文件输出流对象 可以通过 read 函数,以二进制方式读数据

最后总结,文件操作基本5步⌚️

首先头文件,再创建对象,然后开文件,对数据操作,再关闭文件

是不是很easy?《easy》

C++文件操作详细使用方法讲解_第1张图片

练习一下

众所周知,当我们在打游戏的时候,如果没有存档,第二天再打开游戏就要重新打记录,这样的话,我们就很容易累死,所以你要做出一个程序,来储存一个变量

效果:

用户输入一个int变量,第二次再打开的时候用户先输入变量,再输出:上次输入的是xxx。

你们可以自己写一下,

大佬就忽略吧,看完这篇文章就权当复习一下。

最后

最后的最后就是拜拜了!

浅浅跟个风:我也没什么书好送的,北京这边快递也发不出去,以后再送书️这样吧,你评论,我用rand随机抽4个人送出C++学习资源!

互必回~

你可能感兴趣的:(c++,文件,存档)