趣乐博思剑指信奥 C++ 系列
❝趣乐博思剑指信奥系列,专门针对全国青少年信息学奥林匹克联赛 NOIP 而开展的专业教育方案。开设的课程有 C 语言基础,C++ 语言基础,算法设计入门与进阶,经典试题分析与详解等系列课程。面向10 - 16 岁少儿的编程教育,培养扎实的 C++ 语言基础,灵活运用算法的能力,分析解决问题的能力。
❞
剑指信奥 | C++ 之文件操作
持久的数据
我们都知道,程序运行在计算机的内存中,一旦运行结束或机器关闭,所有的数据都会消失。
为了能够长时间的保持数据,我们需要把数据保存在内存外的其他地方,通常是放置于外存储设备上,一般以各种格式的文件来存放。
我们之前讲过 C 语言操作文件的方法:
剑指信奥 | C 语言之玩转文件
因为 C 是 C++ 的子集,这些方法在 C++ 语言中仍然适用。
但 C++ 也有自己处理文件的方式,今天,我们就来学习 C++ 语言操作文件的方法。
C++ 文件库
在 C++ 中,fstream
标准库包含着文件操作的方法,在其中包含着三种处理数据类型:
ofstream
创建并写入文件,可用fstream
替代ifstream
指定并读取文件,可用fstream
替代fstream
是ofstream
和ifstream
的结合
如果我们需要创建文件,读写文件的多种操作,需要引入 iostream
和 fstream
即可。
下面,我们使用精简的代码演示 C++ 的文件操作。
创建并写文件
先看代码示例:
#include
#include
using namespace std;
int main() {
// 创建 data.out
ofstream data("data.out");
// 写入数据 1 2 3
data << "1 2 3";
// 关闭文件
data.close();
return 0;
}
/*
data.out:
1 2 3
*/
总结:
- 使用
ofstram
创建文件 - 使用
<<
向文件写入数据 - 要关闭文件,释放内存空间
读文件
我们先来看读文件的示例:
#include
#include
using namespace std;
int main() {
// 读取文件 data.in
ifstream data("data.in");
// 循环读取每一行
string line;
while (getline(data, line)) {
cout << line << endl;
}
// 关闭文件
data.close();
return 0;
}
/*
data.in:
1 2 3
4 5 6
output:
1 2 3
4 5 6
*/
总结:
- 使用
ifstream
定义要读的文件 - 使用
while
循环读取每一行数据 - 最后,也要关闭文件,释放内存空间
「 剑指信奥 C++ 系列 」
从零开始,进阶信息学奥林匹克竞赛
清华计算机系哥哥专业讲解
趣乐博思教育
遇见你更优秀的孩子
r
如果您喜欢 趣乐博思教育,请关注我们的公众号,发现您更优秀的孩子!
如果您从这篇文章有所收获,请点亮下方 在看,或转发到朋友圈,谢谢!