C++文件操作与文件流

文件的概念

1.1文件是程序设计中一个重要的概念,所谓“文件”,一般指存储在外部介质上数据的集合。
1.2外存文件包括磁盘文件,光盘文件,和U盘文件。
1.3对用户来说常用的文件类型有两大类,一类是程序文件,如C++的源程序文件(.cpp),目标文件(.obj),可执行文件(.exe)。一类是数据文件,程序里面常常需要把一些数据存放起来,这种磁盘文件就是数据文件。程序中的输入和输出对象就是数据文件。
1.4根据文件中数据的组织形式,又分为ASCII文件和二进制文件。ASCII文件又称文本文件,或字符文件,它的每一个字节存放一个ASCII代码,代表一个字符。二进制文件又称内部格式文件或字节文件,是把内存中的数据按其在内存中的存储形式原样输出到磁盘上存放。
1.5对于字符信息,在内存中是以ASCII代码形式存放的,因此,无论用ASCII文件输出还是用二进制文件输出,其数据形式是一样的,但是对于数值型数据,二者是不同的。如100000,ASCII形式因为一个字符占一个字节所以用了6个字节,而二进制形式因为是长整形,占用了4个字节。
1.6ASCII形式便于阅读,直观,但是占用空间比较多,需要花时间转换(二进制形式与ASCII的转换),二进制形式与ASCII相反。

文件流类与文件流对象

1.1文件流是以外存文件为输入输出对象的数据流。输出文件流是从内存流向外存文件的数据,输入文件流是从外存文件流入内存的数据。每一个文件流都有一个内存缓存区与其对立。
1.2文件流本身不是文件,而是以文件为输入输出对象的流,若要对磁盘文件输入输出,就必须通过文件流来实现。
1.3文件操作的3大类:
A.ifstream类,由istream类派生过来。支持从磁盘文件的输入。
B.ofstream类,由ostream类派生过来。支持向磁盘文件的输出。
C.fstream类,由iostream类派生过来。支持磁盘文件的输入输出。

文件的打开与关闭

1.1打开磁盘文件步骤:
A.为文件流对象和指定的磁盘文件建立关联,以便使文件流流向指定的磁盘文件。
B.指定文件的工作方式,如,指定该文件是输入文件还是输出文件,是以ASCII形式还是以二进制形式。
1.2打开磁盘文件的方式:
A;使用open函数
ofstream outfile; //定义ofstream类对象outfile
outfile.open("f1.dat",ios::out);//使文件流与f1.dat建立关联指定其为输出文件
B:使用构造函数
ofstream ("f1.dat",ios::out);
一般采用的是B方式。
1.3文件输入输出方式设置值
A.ios::in 以输入方式打开文件
B.ios::out 以输出方式打开文件(这是默认方式),如果已有此名字的文件,则将其原有内容全部清除。
C.ios::app 以输出方式打开文件,写入的数据添加在文件末尾。
D.ios::ate 打开一个文件,文件指针指向末尾
E.ios::trunc 打开一个文件,文件存在则删除全部数据,文件不存在则新建一个文件。
F:ios::binary 以二进制方式打开一个文件, 默认为ASCII形式。
G:ios::nocreate 打开一个已有的文件,如果不存在则失败。新版本的C++里面没有。
H:ios::noreplace 如果文件不存在则新建文件,如果存在则失败。新版本C++里面没有。
I:ios::in|ios::out 以输入和输出的方式打开文件,文件可读写。
J:ios::out|ios::binary 以二进制的方式打开一个输出文件。
K:ios::in|ios::binary 以二进制方式打开一个输入文件
1.4每一个打开的文件都有一个文件的指针,该指针的初始位置由I/O确定,每次读写都从文件指针的当前位置开始。每读入一个字节,指针就后移一个字节。当文件指针移到最后,就会遇到文件结束符EOF(文件结束符也占一个字节,其值为-1),此时流对象的成员函数eof的值为非0值(一般为1),表示文件结束了。
1.5可以用“位或”运算符进行输入输出方式的组合。
1.6如果打开操作失败,open函数的返回值为0,如果调用构造函数的方式打开文件,则流对象为0,据此测试打开是否成功。
1.7在对已打开的磁盘文件的读写操作完成后,应关闭该文件,关闭文件用成员函数close。
outfile.close();
所谓关闭,实际上是解除该磁盘文件与文件流的关联,原来设置的工作方式也失效。这样,就不能通过文件流与其他磁盘文件建立关联,通过文件流对新的文件进行输入和输出。



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/566235.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

html字体阴影怎么设置6,css怎么设置字体阴影

css设置字体阴影的方法:使用代码【text-shadow:3px 3px 3px #00f;】,【text-shadow】属性应用于阴影文本,语法为【text-shadow: h-shadow v-shadow blur color;】。本教程操作环境:windows10系统、css3版,该方法适用于…

PCL入门

pcl的入门 本博客主要是对外文的翻译,及其他资料的一些整理。 pcl 分割成好几个模块的库 Filters(滤波器) Features(特征) Keypoints(关键点) Registration(注册) KdTree:k-dimension tree(k维的树) OcTree(八叉树) Segmetation(分割) Sample Consensus(采…

台式电脑怎么看计算机型号,怎么查看台式机的型号

电脑配置有很多,很多人在买电脑总是觉得配置和商家说的不是一样的,下面就让小编教大家台式机怎么查看型号和配置。查看台式机型号和配置的方法金山卫士查看首先打开自己电脑的安全卫士软件,其实卫士都有这种功能的,我这里实用的是…

pcl的初步使用(ROS)

ROS里面已经预装好了pcl,和一些与pcl之间的转换,我们接下来看看如何在ros里面使用pcl.。 总的来说,PCL包含了一个很重要得到数据结构,叫PointCloud,这是一个模板类,把点的类型作为模板参数。 下面是最重要…

四川大学计算机学硕分数线,川大计算机考研分数线

川大计算机考研分数线?2016高考志愿填写,高考考生家长有开端着手预备吗 厚学网收拾了对于普通高校招生填写志愿的有关诀窍,供考生和家长参阅。绝密:高考填报志愿有技巧!志愿填报需要注意的细节问题:语种有限制在咱们要学习的外语语…

pcl里面的3D特征

我这里不介绍pcl里面的类的命名规范,及点的类型。为什么呢?pcl里面类的命名规范,比较繁琐,而且主要是针对要对pcl这个库要开源的人士,而pcl里面的点的类型太多,足够满足你的要求。所以我们要走一条具有中国特色的pcl主…

html本地缓存未查看信息,不同用户看到了相同的信息-一次web系统缓存问题的解决...

最近负责的系统总是出现奇怪的缓存问题,在这里简单记录一下碰到的问题和踩到的坑。问题:用户反映使用不同账号A,B登录时,都出现账号A的页面信息(未邮寄账单提示)。如下所示:图1:未邮寄账单提示一 session缓…

pcl里面的法线估计

法线估计是一个很重要的特征,常常在被使用在很多计算机视觉的应用里面,比如可以用来推出光源的位置,通过阴影与其他视觉影响。 给一个几何表面,去推断给定点的法线方向,即垂直向量的方向往往是不容易的。然而&#xf…

pcl通过积分图来进行法线预测

首先,我们来看一下什么是积分图,我查了一下wiki,发现它的定义是这样的。 A summed area table is a data structure and algorithm for quickly and efficiently generating the sum of values in a rectangular subset of a grid. In the i…

个人计算机的防毒软件无法防御,在win10系统中无法启动defender防御软件的解决方法...

软件大小: 3.56 MB软件版本: 3.3.30.180软件类型:系统补丁查看详情直接下载win10系统是我们现在都在使用的系统,下面小编为大家在win10系统中无法启动defender防御软件的解决方法,希望可以帮助到你们。解决方法:1、根据…

pcl里面的点特征直方图(PFH)

表面法线和曲率可以好的代表一个点的几何特征。然而它们算得很快,而且算法简单,但是它们不能捕获细节,它们只是点的近邻的几何特征的近似估计。作为一个直接的结论,大多数的场景往往会包括很多有着相似特征的点,这会减…

为什么计算机休眠风扇还转,Win7系统进入睡眠模式后电脑风扇还在转的解决方法...

如果长时间离开电脑,可以让win7系统进“睡眠”模式,这样可以节省能源,延长硬盘寿命。但是有位用户说自己Win7系统进入睡眠模式后,依旧可以听到风扇还在转,怎么回事呢?其实这是因为Win7处在低耗能的状态&…

快速特征点直方图描述器(FPFH)

PFH的理论上的时间复杂度是O(nk的平方),n是点的数量,k是最近邻的个数。对于实时系统来说,这压根就是不行的,所以作为PFH规划的简化版本,FPFH把计算复杂度减少成O(nk),但是还具有很好的和PFH差不多的区分能力。 第一步…

计算机硬盘能达到5g的速度,5G号称可以达到几GB每秒,但是目前的手机处理器和硬盘可以处理这么庞大的数据量吗?...

感谢悟空的邀请!“通信行业那些事儿”,专业解读通信、网络类问题,希望我的回答能够给您启发,大家共同探讨、共同提高!欢迎关注我!楼主您好!这个问题,我正好是通信行业的从业人员&…

点集的视点特征直方图的评估

VFH(Viewpoint Feature Histgram)视角特征直方图描述器,可以很直观的表现点的聚类在处理聚类识别与6DOF位姿估计。 下面的图像展示了一个VFH识别和位姿估计的例子。给一些训练集,除了左下角的那个杯子,用来学习,用左下角的杯子作…

计算机电路基础答案,计算机电路基础模拟试卷答案(B)

计算机电路基础》复习题型模拟试卷《计算机电路基础》模拟考试试卷答案(B)一、填空题(1) 场效应管3个电极G、D、S其功能与晶体三极管的 B、C、E 电极相对应,而N沟道和P沟道场效应管则分别类同于 NPN型、PNP型 两种类型的晶体三极管。(2) 触发器分为边沿触发和 脉冲 …

从一个深度图里面导出NARF特征

本节将显示如何提取出NARF关键点通过NARF描述器从一个深度图里面。 以下是一段代码 #include <iostream>#include <boost/thread/thread.hpp> #include <pcl/range_image/range_image.h> #include <pcl/io/pcd_io.h> #include <pcl/visualization/…

计算机综合症怎么治,电脑综合症的治疗方法有哪些?

眼保健操(1)操作时保证正确坐姿&#xff0c;尽可能保持自然的端坐位&#xff0c;将后背坐直&#xff0c;并保持颈部的挺直。两肩自然下垂&#xff0c;上臂贴近身体&#xff0c;手肘弯曲成90度&#xff0c;操作键盘或鼠标&#xff0c;应使手腕保持水平。电脑的摆放高度要适度&am…

惯性矩和偏心距描述器

这次我们将学会怎么使用pcl::MomentOfInertiaEstimation 这个类来获取以惯性矩和偏心距为基础的描述器。这个类也能提取坐标对称和定向包围的方形盒子。但是记住导出的OBB不是最小可能性的盒子。 下面介绍了该种方法的特征提取方式。第一次先算出点云矩阵的协方差&#xff0c;…