设为首页 加入收藏

TOP

6.1.2 使用标准C++库std::fstream
2013-10-07 01:02:43 来源: 作者: 【 】 浏览:64
Tags:6.1.2 使用 标准 std::fstream

6.1.2  使用标准C++(www.cppentry.com)库std::fstream

标准C++(www.cppentry.com)操作文件主要是通过文件流fstream来完成的。文件输入/输出流用以实现文件读取和存储的操作,这种基于流的文件操作如图6-2所示。

 
(点击查看大图)图6-2  文件输入/输出流

和文件有关系的输入/输出类主要在头文件<fstream>中被定义。在这个头文件中主要定义了3个类。由这3个类控制对文件的各种输入/输出操作,它们分别是ifstream、ofstream、fstream。其中fstream类是由iostream类派生而来的,它们之间的继承关系如图6-3所示。

如果需要使用fstream,则需要包含<fstream>头文件,与iostream不同的是,fstream需要和指定的文件名相关联,如:

  1. ofstream out("test.out");  
  2. out << "hello, world!"
 
(点击查看大图)图6-3  fstream与iostream

除流操作符之外,fstream提供的文件操作函数如表6-3所示。

6-3  fstream文件操作函数< xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

函数

含义

open

打开文件

close

关闭文件

is_open

判断当前文件是否已打开

其中,open()函数具有多个原型:

  1. void open(  
  2.     const char *_Filename,  
  3.     ios_base::openmode _Mode = ios_base::in | ios_base::out,  
  4.     int _Prot = (int)ios_base::_Openprot  
  5. );  
  6. void open(  
  7.     const char *_Filename,  
  8.     ios_base::openmode _Mode  
  9. );  
  10. void open(  
  11.     const wchar_t *_Filename,  
  12.     ios_base::openmode _Mode = ios_base::in | ios_base::out,  
  13.     int _Prot = (int)ios_base::_Openprot  
  14. );  
  15. void open(  
  16.     const wchar_t *_Filename,  
  17.     ios_base::openmode _Mode  
  18. ); 

参数ios_base::openmode用以指定文件的打开方式,可以是如表6-4所示的标志的组合。

6-4  ios_base::openmode标志

标志

含义

ios::app

追加模式(append),新输出的内容追加在原文件内容的后面

ios::ate

文件打开后定位到文件尾,ios:app就包含此属性

ios::binary

以二进制方式打开文件,默认的方式是文本方式

ios::in

文件以输入方式打开

ios::out

文件以输出方式打开

ios::trunc

截断模式(truncate),如果文件存在,则把文件长度设为0

ios::nocreate

如果文件不存在则不创建

ios::noreplace

如果文件已存在则不替换

如下罗列出使用fstream类进行文件操作的流程。

调用fstream::fopen()创建、打开文件。

通过流操作,使用fstream完成输入/输出,如:out << "hello, world!"。

调用fstream::close()关闭文件。

【责任编辑:云霞 TEL:(010)68476606】

回书目   上一节   下一节

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇从C#到C++容易出现的问题解答 下一篇C# 泛型实现理解及实例浅析

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: