趣乐博思剑指信奥 C++ 系列

趣乐博思剑指信奥系列,专门针对全国青少年信息学奥林匹克联赛 NOIP 而开展的专业教育方案。开设的课程有 C 语言基础,C++ 语言基础,算法设计入门与进阶,经典试题分析与详解等系列课程。面向10 - 16 岁少儿的编程教育,培养扎实的 C++ 语言基础,灵活运用算法的能力,分析解决问题的能力。

剑指信奥 | C++ 之文件操作

持久的数据

我们都知道,程序运行在计算机的内存中,一旦运行结束或机器关闭,所有的数据都会消失。

为了能够长时间的保持数据,我们需要把数据保存在内存外的其他地方,通常是放置于外存储设备上,一般以各种格式的文件来存放。

我们之前讲过 C 语言操作文件的方法:

剑指信奥 | C 语言之玩转文件

因为 C 是 C++ 的子集,这些方法在 C++ 语言中仍然适用。

但 C++ 也有自己处理文件的方式,今天,我们就来学习 C++ 语言操作文件的方法。

C++ 文件库

在 C++ 中,fstream 标准库包含着文件操作的方法,在其中包含着三种处理数据类型:

  1. ofstream 创建并写入文件,可用 fstream 替代
  2. ifstream 指定并读取文件,可用 fstream 替代
  3. fstreamofstreamifstream 的结合

如果我们需要创建文件,读写文件的多种操作,需要引入 iostreamfstream 即可。

下面,我们使用精简的代码演示 C++ 的文件操作。

创建并写文件

先看代码示例:

#include #include 

using namespace std;

int main() {

// 创建 data.outofstream data("data.out");

// 写入数据 1 2 3    data << "1 2 3";

// 关闭文件    data.close();

return 0;}

/* data.out:    1 2 3 */

总结:

  1. 使用 ofstram 创建文件
  2. 使用 << 向文件写入数据
  3. 要关闭文件,释放内存空间

读文件

我们先来看读文件的示例:

#include #include 

using namespace std;

int main() {

// 读取文件  data.inifstream 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 */

总结:

  1. 使用 ifstream 定义要读的文件
  2. 使用 while 循环读取每一行数据
  3. 最后,也要关闭文件,释放内存空间

「 剑指信奥 C++ 系列 

从零开始,进阶信息学奥林匹克竞赛

清华计算机系哥哥专业讲解


趣乐博思教育

遇见你更优秀的孩子

‏r

如果您喜欢 趣乐博思教育,请关注我们的公众号,发现您更优秀的孩子!

如果您从这篇文章有所收获,请点亮下方 在看,或转发到朋友圈,谢谢!

创建data文件_剑指信奥 | C++ 之文件操作相关推荐

  1. c语言 read 文件字节没超过数组大小时会怎样_剑指信奥 | C 语言之信奥试题详解(四)...

    趣乐博思剑指信奥系列 ❝ 趣乐博思剑指信奥系列,专门针对全国青少年信息学奥林匹克联赛 NOIP 而开展的专业教育方案.开设的课程有 C 语言基础,C++ 语言基础,算法设计入门与进阶,经典试题分析与详 ...

  2. c语言一维数组逆序输出_剑指信奥 | C 语言之兵人来袭!

    趣乐博思剑指信奥系列 ❝ 趣乐博思剑指信奥系列,专门针对全国青少年信息学奥林匹克联赛 NOIP 而开展的专业教育方案.开设的课程有 C 语言基础,C++ 语言基础,算法设计入门与进阶,经典试题分析与详 ...

  3. stl clocklist 查找元素_剑指信奥 C++ 之 STL 迭代器(上)

    趣乐博思剑指信奥 C++ 系列 ❝ 趣乐博思剑指信奥系列,专门针对全国青少年信息学奥林匹克联赛 NOIP 而开展的专业教育方案.开设的课程有 C 语言基础,C++ 语言基础,算法设计入门与进阶,经典试 ...

  4. 字符串全排列算法_C#版_剑指OFFER

    字符串全排列算法_C#版_剑指OFFER 题目描述 ​题目描述 输入一个长度为 n 字符串,打印出该字符串中字符的所有排列,你可以以任意顺序返回这个字符串数组. 例如输入字符串ABC,则输出由字符A, ...

  5. 牛客网_剑指Offer_Python实现_更新中

    剑指Offer编程题汇总 第1题_二维数组中的查找 第2题_替换空格 第3题_从尾到头打印链表 第4题_重建二叉树 第5题_用两个栈实现队列 第6题_旋转数组的最小数字 第7题_斐波那契数列 第8题_ ...

  6. 一个数三位立方和相加等于本身_【题解信奥】打印水仙花数(粉丝求助)

    前言 本题来源于粉丝的求助. 关于粉丝求助的问题,我们会按照先后顺序来解答,并从公众号后台回复答案和解析. 打印水仙花数时间限制: 1000 ms    内存限制: 65536 KB [题目描述] 打 ...

  7. 剑指offer最新版_剑指Offer——Java版本(持续更新)

    0 前言 邻近校招,算法要命!!! 本文为研究剑指Offer过程中的笔记,整理出主要思路以及Java版本题解,以便记忆和复习. 参考整理来自<剑指Offer 第二版>. 特别注意,对每道题 ...

  8. 用循环实现斐波那契数列_剑指 Offer 10- I. 斐波那契数列

    剑指 Offer 10- I. 斐波那契数列 写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项.斐波那契数列的定义如下: F(0) = 0, F(1) = 1 F(N) = F ...

  9. python中myf什么意思_剑指Offer-Python题解(三)

    剑指Offer-Python题解(三) 45 扑克牌顺子 题目描述 LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张^_^)...他随机从中抽出了5张牌 ...

  10. leetcode 打印_剑指 Offer 32 - III 从上到下打印二叉树 III - leetcode 剑指offer

    题目难度: 中等 原题链接 今天继续更新剑指 offer 系列, 这道题相比昨天那道题多了个每层打印方向不同的需求, 聪明的你想到应该如何实现了吗? 老样子晚上 6 点 45 分准时更新公众号 每日精 ...

最新文章

  1. 将三维点云投影到XOZ面上
  2. Git中忽略文件权限或文件拥有者的改变
  3. c#/.net 循序渐进理解-委托
  4. 小学用计算机画画 说课,小学教师说课稿:《画画美丽的自然景色》
  5. 计算机视觉 模型、学习和推理 Computer vision:models,learning and inference(免费下载)
  6. 转帖-Linux学习(Find命令使用实例)
  7. 详解centos7 YCM YouCompleteMe自动补全安装,亲测成功
  8. linux如何手动释放内存吗,Linux如何手动清理内存中cache信息
  9. 20151209小问题
  10. CorePlot-饼状体
  11. PostgreSQL的 initdb 源代码分析之十六
  12. 配置nginx作为下载站点
  13. 查看路由器内宽带账号密码(D-link,TP-Link)
  14. IBM称欧亚受Conficker病毒感染最严重
  15. ubuntu安装vmwaretools
  16. Linux本地信息收集
  17. python3的print()函数的用法图文讲解
  18. activex html 崩溃_网站导致浏览器崩溃的原因总结(多款浏览器)
  19. 如何利用Python动态模拟太阳系运转
  20. layui设置textarea高度

热门文章

  1. 明晰当下洞见未来 做区块链你还需要这四项技能
  2. 到底应该使用count(*) 还是count(1)
  3. 标准IT POD之美
  4. 各位玩新浪的SAE的 请点个关注http://weibo.com/i/2062352633
  5. Oracle监控指标
  6. 我的博客也是男的(还好)
  7. spring boot项目发送邮件
  8. loadrunner性能测试步骤_性能测试LoadRunner操作流程之一
  9. CSS 自定义滚动条样式
  10. mybatis源码分析详解