C++中文件的打开与关闭

目录

 

一 知识讲解

1.文件

2.文件流:

3.文件流类和文件流对象

  • 标准输入输出流类:
  • 用于文件操作的文件类:

 二 实现方法讲解

建立一个输出文件流对象:

使用成员函数close();


知识讲解

首先要懂几个非常重要的概念:

1.文件

  1.   存储在外部介质上(个人认为就是你的硬盘什么的)的数据集合,是程序设计中的重要概念。
  2.   对于普通用户常用到数据文件和程序文件。
  3.   程序中输入和输出的对象就是数据文件。
  4.   根据文件中数据的组织形式,可分为ASCII文件和二进制文件。

2.文件流:

  1.  文件流不是若干个文件组成的流,文件流本身不是文件,而只是以文件为输入输出对象的流。
  2.    若要对磁盘文件输入输出就必须通过文件流来实现。

3.文件流类和文件流对象

       cin,cout 只能处理c++中以标准设备为对象的输入输出。所以有时候就必须定义以磁盘文件为对象的输入输 出流对象。  (原因)

        在C++的标准I/O库中定义了几种文件类,专门用于对磁盘文件的输入输出操作。

标准输入输出流类:

  1.   istream
  2.   ostream
  3.   iostream

用于文件操作的文件类:

  1. ifstream 
  2. ofstream
  3. fstream

*C++是通过流对象进行输入输出的,由于cin cout 事先已经在头文件iostream中定义好,所以用户不用再定义。

实现方法讲解

第一步:建立一个输出文件流对象:

ofstream  outfile ;    

 

上面定义的问题在于还未指定它向哪一个磁盘文件输出,所以需要指定。

 

  1.  需要将文件流对象和指定的磁盘文件建立连接
  2.  指定文件的工作方式。

以上功能可以通过两种方式实现:

  1. 调用文件流的成员函数-open

ofstream  outfile ;    

outfile.open(“fiel.txt”,ios::out);

     2.   在定义文*件流对象时指定参数

ostream outfile ("file,txt",ios::out);

作用与open 相同,更为方便。

对于outfile的第二个参数指定的是文件的打开方式,根据实际情况指定打开方式就行了。下面的表格意义列举了打开方式及作用说明。

 

方式 作用
ios::in 以输出方式打开文件
ios::out 以输出方式打开文件(这是默认方式),如果已有此名字的文件,则将其内容删除
ios::app 以输出方式打开文件,写入的数据添加在文件的末尾
ios::ate      打开一个已有文件,文件指针指向文件末尾      
 ios::trunc    如果该文件不存在则建立,如果存在则删除全部数据如果已经指定ios::out方式,而未指定ios::app.ios::ate,ios::in ,则同时默认此方式   
|ios::binary   以二进制形式打开文件,如果不指定方式则默认ASCII方式
ios::nocreate 打开一个已有文件,不存在则打开失败,nocreate 意思是不创建
ios::noreplace     如果文件不存在则建立新的文件如果文件已经存在则打开失败,noreplace 意思是不覆盖原有的文件  
ios::in|ios::out   以输入和输出方式打开文件,文件可读可写   
ios::out|ios::binary 以二进制方式打开一个输出文件  
ios::in|ios::binary 以二进制形式打开一个输入文件

 

最后当关闭磁盘文件,使用成员函数close();

文件流对象名.close();       

读写文件实例:

#include 
#include 
#include 
#include   
#include     
#include   
#include 


#define tour_amount   15000
using namespace std;

class init_of_node 
{
	
	public:

        fstream  ffile;
        string str, line; 
		
	public:
	    	
		void getnext(int len)  ;
		void open_file() ;
		void close_file();
		void  file_read();

				
};
void   init_of_node::open_file( )
{
	ffile.open( "file.txt",ios::in ) ;
	if( !ffile)  //以输入的方式打开文件 ,在当前路径下创建了DNA.txt文本文件! 
	  cout<<"open error! please verify that  you enter the correct path?"<>node; 
         cout<<"nodeA = "<>node;
         cout<<"nodeB = "<>distanceofAB;
         cout<<"nodeA to nodeB = "<

TXT文件内容:

C++中文件的打开与关闭_第1张图片

文件运行结果:

C++中文件的打开与关闭_第2张图片

大家也可以参考另外一种文件流的读写方式

 

在C语言中,用FILE结构来表示文件流

你可能感兴趣的:(数据结构)