ofstream的使用方法

ofstream是从内存到硬盘,ifstream是从硬盘到内存,其实所谓的流缓冲就是内存空间;

ofstream 该数据类型表示输出文件流,用于创建文件并向文件写入信息
ifstream 该数据类型表示输入文件流,用于从文件读取信息。
fstream 该数据类型通常表示文件流,且同时具有 ofstream 和 ifstream 两种功能,这意味着它可以创建文件,向文件写入信息,从文件读取信息。

打开文件

在从文件读取信息或者向文件写入信息之前,必须先打开文件
ofstream 和 fstream 对象都可以用来打开文件进行写操作,如果只需要打开文件进行读操作,则使用 ifstream 对象。
open() 函数的标准语法,open() 函数是 fstream、ifstream 和 ofstream 对象的一个成员

void open(const char *filename, ios::openmode mode);//第一参数指定要打开的文件的名称和位置,第二个参数定义文件被打开的模式

对于第二个参数
ios::app 追加模式。所有写入都追加到文件末尾。
ios::ate 文件打开后定位到文件末尾。
ios::in 打开文件用于读取。
ios::out 打开文件用于写入。
ios::trunc 如果该文件已经存在,其内容将在打开文件之前被截断,即把文件长度设为 0

用法

ofstream out;
out.open("data.txt", ios::binary | ios::app | ios::in | ios::out);//输出为data.txt文件
out<<"内容"<<"\n";
out.close();  //关闭文件

注意ofstream持续写入文件,数据丢失的问题

对于for循环,持续写入文件,如下,全部写在for循环中,数据特别多时,不会丢失数据

int main()
{ofstream out;
for(int i;i<xx.size();++i){out.open("data.txt", ios::binary | ios::app | ios::in | ios::out);//输出为data.txt文件out<<"内容"<<"\n";out.close();  //关闭文件}
}

如果这么写,将out.open写在for之外,一旦程序复杂,输出数据量特别大时,数据将可能发生丢失

int main()
{ofstream out;
out.open("data.txt", ios::binary | ios::app | ios::in | ios::out);//输出为data.txt文件
for(int i;i<xx.size();++i){out<<"内容"<<"\n"; }out.close();  //关闭文件
}

并且千万要记得close掉文件。

C++读写操作ofstream(数据丢失问题)相关推荐

  1. C++ builder 的文件读写操作总结

    C++ builder 的文件读写操作总结 在编程的过程中,文件的操作是一个经常用到的问题,在C++Builder中,可以使用多种方法对文件操作,下面我就按以下几个部分对此作详细介绍,就是: 1.基于 ...

  2. C/C++ 文件读写操作总结

    C/C++ 文件读写操作总结 在编程的过程中,文件的操作是一个经常用到的问题,在C++Builder中,可以使用多种方法对文件操作,下面我就按以下几个部分对此作详细介绍,就是: 1.基于C的文件操作: ...

  3. C/C++文件读写操作 —— windowsAPI

    转自:http://blog.sina.com.cn/s/blog_6e7fed390100z0j1.html 基于C的文件操作 在ANSI C中,对文件的操作分为两种方式,即流式文件操作和I/O文件 ...

  4. C/C++文件读写操作总结:FILE*、fstream、windowsAPI

    CFile file;CString FileName = _T("C:\\Users\\zhan\\Desktop\\自写测试数据\\100.txt");file.Open(Fi ...

  5. C/C++文件读写操作——FILE*、fstream、windowsAPI

    转载自: http://blog.sina.com.cn/s/blog_6e7fed390100z0j1.html 基于C的文件操作 在ANSI C中,对文件的操作分为两种方式,即流式文件操作和I/O ...

  6. C++中的文件读写操作(1)

    #include "iostream" #include "fstream" #include "vector" #include &quo ...

  7. C++ I/O文件读写操作

    文章目录 IO: 向设备输入数据和输出数据C++的IO流 写文件 读文件 对二进制文件流读写 写二进制文件 读二进制文件 对文件流按格式读写取数据 按指定格式读文件 文件流的状态检查 文件流的定位 获 ...

  8. c语言读取ascii文件,C++对ASCII文件的读写操作

    如果文件的每一个字节中均以ASCII代码形式存放数据,即一个字节存放一个字符,这个文件就是ASCII文件(或称字符文件).程序可以从ASCII文件中读入若干个字符,也可以向它输出一些字符. 对ASCI ...

  9. fstream —文件读写操作

    一.fstream 文件输入输出流 1.文件读写的三种类型 ifstream:从一个给定文件中读取数据 . ofstream:向一个给定的文件中写入数据 fstream:可以读写给定的文件. 它可以用 ...

  10. pcd、jpg、raw、txt、二进制文件的读写操作

    文件的读写 1. pcd文件 2. jpg 文件 3. 文本文件和二进制文件 3.1 txt 文件的读写操作 3.2 二进制文件的读写操作 4. raw文件 1. pcd文件 PCD:point cl ...

最新文章

  1. CUDA 11功能清单
  2. docker 主机ip_docker容器指定ip
  3. Spring-AOP实践 - 统计访问时间
  4. stm32 JTag 错误
  5. 解答:为什么蚊子咬的包会痒痒
  6. distance from ifm to Sidney Sussex College: acceptable
  7. servlet ---- servlet入门
  8. NPM酷库:uuid,生成随机ID
  9. 解决Node.js 运行的时候出现中文乱码问题
  10. jquery值ajaxForm
  11. 各个省市mysql表附带行政id(一)
  12. 计算机视觉——图像拼接
  13. html的window效果,HTML+CSS+JS模仿win10亮度调节效果
  14. 【十年签证】办理美国签证流程详解
  15. 查看微信中撤回的图片(RIO)
  16. gitBlit的使用
  17. Laravel 用户认证中 attempt方法
  18. 孙叫兽VUE学习笔记总结(值得收藏),很全很详细!!!
  19. Python暴力破解网站登录密码脚本
  20. java获取屏幕截图_java 利用java运行时的方法得到当前屏幕截图的方法

热门文章

  1. bert获取词向量做textcnn文本分类
  2. 广发多空杠杆浮动杠杆率计算
  3. Android Studio制作简易音乐盒
  4. 基于 Sphinx 以纯文本编写富媒体项目文档的方法介绍
  5. 594万奖金池!行人重识别、遥感图像语义分割等赛事全面启动!2020 年全国人工智能大赛来了...
  6. 594万元奖金 | “2020 年全国人工智能大赛”重磅启动
  7. 优秀开源项目之二:流媒体直播系统Open Broadcaster Software
  8. linux查ip出现fe80,ubuntu IP出现inet6 addr :fe80::20c:29ff:fe47:fd61/64 scope:l
  9. 吉林大学计算机科学与技术学院校训,名校校训
  10. 大学计算机考试59分,大学期末考59分,你会找老师理论吗?很多人都猜错