当前位置: 首页 > news >正文

智慧团建共青团员登录网站海外营销推广

智慧团建共青团员登录网站,海外营销推广,什么是响应式设计,威客做的比较好的网站8.2 文件输入输出 头文件 fstream 定义了三个类型来之支持文件IO,分别是: ifstream:从一个给定文件读取数据;ofstream:向一个给定文件写入数据;fstream:读写给定文件。 在 C 当中&#xff0c…

8.2 文件输入输出

头文件 fstream 定义了三个类型来之支持文件IO,分别是:

  • ifstream:从一个给定文件读取数据;
  • ofstream:向一个给定文件写入数据;
  • fstream:读写给定文件。

在 C++ 当中,可以方便地使用 IO 运算符(<<>>)对文件进行读写,可以使用getline从一个 ifstream 读取数据。

8.2.1 使用文件流对象

当我们想要读写一个文件时,可以定义一个文件流对象,并将对象与文件关联起来。每个文件流类都定义了一个名为 open 的成员函数,它可以完成一些系统相关的操作,来定位给定文件并视情况打开为读或写模式。

创建文件流对象时,我们可以提供文件名(可选),如果提供了文件名,则 open 自动调用:

ifstream in(ifile);	// 构造一个 ifstream 并打开给定文件
ofstream out;		// 输出文件流未关联到任何文件

在 C++ 标准下,文件名可以是 string 对象,也可以是 C 风格的字符数组。

用 fstream 代替 iostream&

在要求使用基类型对象的地方,可以用继承类型的对象来替代。这意味着,接受一个 iostream 类型引用参数的函数,可以用一个对应的 fstream(或sstream)类型来调用。即:如果一个函数接受 ostream& 参数,在调用这个函数时,可以传递给它一个 ofstream 对象,对 istream& 和 ifstream 也是类似的。

成员函数 open 和 close

如果我们定义了一个空的文件流对象,可以调用 open 来将它与文件关联起来:

ifstream in(ifile);
ofstream out;
out.open(ifile + ".copy");	// 打开指定文件

如果调用 open 失败,failbit 会被置位。因为 open 的调用可能失败,所以对 open 进行检查是良好的习惯:

if(out)	// 检查 open 是否成功

一旦一个文件流被打开,他就将保持与对应文件的关联。对于一个已经打开的文件流,如果再次调用 open,将会失败并且 failbit 会被置位。为了将文件流关联到另一个文件,必须首先关闭已经关联的文件。文件成功关闭之后,我们才可以打开新的文件:

in.close();				// 关闭文件
in.open(ifile + "2");	// 打开另一个文件

自动构造和析构

如下例子的 main 函数将接受一个要处理的文件列表,这种程序可能会出现如下循环:

for(auto p = argv + 1; p != argv + argc; ++ p) {ifstream input(*p);			// 创建输出流并打开文件if(input) {					// 如果文件成功打开, 处理该文件process(input);		} else {cerr << "couldn't open : " + string(*p);}
}	// 每个循环 step, input 都会离开作用域, 因此会被销毁

由于 input 是 for 循环的局部变量,它在每一个 step 都要创建和销毁一次。当一个 fstream 对象被销毁时,close 会自动调用

8.2 文件模式

每个流都有一个关联的文件模式(file mode),用来指出如何使用文件:

  • in:以读方式打开;
  • out:以写方式打开;
  • app:每次写操作前定位到文件末尾(append);
  • ate:打开文件后立即定位到文件末尾;
  • trunc:截断文件;
  • binary:以二进制方式进行 IO;

每个文件流类型都定义了一个默认的文件模式,如果未指定文件模式,就是用默认模式。

以 out 模式打开文件会丢弃已有的数据

默认情况下,当我们打开一个 ofstream 时,文件的内容会被丢弃。阻止一个 ofstream 清空给定文件内容的方法是同时指定 app 模式:

ofstream out("file1");								// 隐含以输出模式打开文件并截断文件
ofstream out2("file1", ofstream::out);				// 隐含地截断文件
ofstream out3("file1", ofstream::out | ofstream::trunc);
// 为了保留文件内容, 必须显式地指定 app 模式
ofstream app("file2", ofstream::app);				// 隐含为输出模式
ofstream app2("file2", ofstream::out | ofstream::app);

每次调用 open 时都会确定文件模式

对于一个给定流,每当打开文件时,都可以改变其文件模式:

ofstream out;
out.open("scratchpad");		// 模式隐含设置为输出和截断
out.close();
out.open("precious", ofstream::app);	// 显式地设置为追加, 隐含输出
out.close();

在每次打开文件时,都要设置文件模式,可能是显式地设置,也可能是隐式地设置。当程序未指定模式时,使用默认值。

http://www.hkea.cn/news/164797/

相关文章:

  • 淮安做网站优化百度竞价排名是什么方式
  • 食品公司网站源码谷歌网页
  • 做网站用哪种代码比较好推广seo发贴软件
  • 3d效果图软件宁波seo行者seo09
  • 美国做按摩广告的网站网站优化教程
  • wordpress云建站教程信息流广告公司一级代理
  • 我有一个域名怎么做网站百度一下下载
  • 郑州网站建设品牌好安装百度到桌面
  • 株洲做网站定制百度灰色词优化排名
  • 上海网页设计公司兴田德润电话排名优化外包公司
  • 做360网站优化快推广普通话宣传语手抄报
  • 动态网站开发语言有哪些大学生创新创业大赛
  • 关键词推广公司网站网络排名优化方法
  • 福州移动网站建设网络营销推广工具有哪些
  • win2008sr怎么用iis做网站国外网站加速
  • 合肥++网站建设磐石网站seo
  • 万网主机怎么上传网站如何在百度上投放广告
  • 做网站时如何给文字做超链接全球疫情最新数据消息
  • 四川省住建厅官方网站3分钟搞定网站seo优化外链建设
  • 做网站阳泉巨量千川广告投放平台
  • 温岭哪里有做网站的如何自制网站
  • 知道创于 wordpress搜索引擎优化宝典
  • 乌兰县wap网站建设公司有效获客的六大渠道
  • 微信网站开发教程视频教程百度一下主页官网
  • 网站开发专业前景关键词挖掘排名
  • 网站开发属于什么职位类别seo查询站长工具
  • wordpress postmetaseoul national university
  • 商务网站的主要存在形式杭州百度快照优化公司
  • 个人备案网站做购物网站可以不班级优化大师免费下载电脑版
  • 贸易网站建设互联网广告代理加盟