建立流对象,然后调用open()函数连接外部文件(P306)

/*

打开文件目的:
1)建立关联。通过指定文件名,建立起文件和文件流对象的关联,以后在对文件进行操作时,就可以通过与之关联的流对象来进行操作。
2)指明文件的使用方式和文件格式。
使用方式有只读、只写、既读又写、在文件末尾追加数据4种。 文件格式是文本方式或二进制方式。

打开文件的方式有以下两种:
1)先建立流对象,然后调用open()函数连接外部文件。格式如下:
流类名 对象名;
对象名.open(文件名,模式);
2)调用流类带参数的构造函数,在建立流对象的同时连接外部文件。格式如下:
流类名 对象名(文件名,模式);

1、“流类”是C++流类库定义的文件流类ifstream、ofstream或fstream。(若要以读方式打开文件则应该使用类ifstream,若要以写方式打开文件则应打开文件则应使用类ofstream,若以读/写方式打开文件则应使用类fstream)。
2、“文件名”是用字符串标识的外部文件名称,可以是已经赋值的字符串,也可以是字符串常量。可以是包含完整路径的绝对文件名,也可以是只包含相对路径的文件名。
3、“模式”是类ios定义的打开模式标记常量,用来标识文件的打开方式。
4、文件打开模式标记 ~P304
模式标记 适用对象 作用
ios::in ifstream/fstream 以读方式打开文件。
ios::out ofstream/fstream 以写方式打开文件
ios::binary fstream /ifstream /ofstream 以二进制方式打开文件。若不指定此模式,则以默认的文本模式打开文件
ios::in|ios::out fstream 打开已存在的文件,即可读取其内容,也可向其写入数据。

关闭文件:
系统将缓冲区中的数据完整地写入文件,同时添加文件结束标记,切断流对象与外部文件的连接。
使用fstream中的成员函数close()关闭文件。

eg:
ifstream inFlie;
inFile.open("file.txt",ios::in);
inFile.close();

*/

#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ifstream inFile;
inFile.open("c:\\tmp\\test.txt",ios::in); //以读的方式打开文本文件
if(inFile) //打开成功,inFile值为true
{
cout<<"成功打开文件:c:\\tmp\\test.txt\n";
inFile.close(); //关闭文件
}
else
cout<<"打开文件失败:c:\\tmp\\test.txt\n";

ofstream outFile;
outFile.open("test1.txt",ios::out); //以写方式打开文本文件
if(!outFile) //条件成立,则说明文件打开成功
cout<<"error1"<<endl;
else
{ cout<<"成功打开文件:test1.txt\n";
outFile.close();
}
outFile.open("tmp\\test2.txt",ios::out|ios::in); //以读写方式打开文本文件
if(outFile) //条件成立,则说明文件打开成功
{
cout<<"成功打开文件:tmp\\test2.txt"<<endl;
outFile.close();
}
else
cout<<"error2"<<endl;
fstream ioFile;
ioFile.open("..\\test3.txt",ios::out|ios::in|ios::trunc); //以读写方式创建文件
if(!ioFile) //条件成立,则说明文件创建出错
cout<<"error3"<<endl;
else
{
cout<<"成功打开文件:..\\test3.txt"<<endl;
ioFile.close();
}
return 0;
}

posted @ 2020-04-11 08:45  CollisionDimension  阅读(299)  评论(0)    收藏  举报