C++中使用open和close打开和关闭文件
C++提供了 std::fstream,旨在以独立于平台的方式访问文件。 std::fstream 从 std::ofstream 那里继承
了写入文件的功能,并从 std::ifstream 那里继承了读取文件的功能。
换句话说, std::fstream 提供了读写文件的功能。
要使用 std::fstream 类或其基类,需要包含头文件<fstream>:
#include <fstream>
要使用 fstream、 ofstream 或 ifstream 类,需要使用方法 open( )打开文件:
fstream myFile;
myFile.open("HelloFile.txt",ios_base::in|ios_base::out|ios_base::trunc);
if (myFile.is_open()) // check if open() succeeded
{
// do reading or writing here
myFile.close();
}
open( )接受两个参数:第一个是要打开的文件的路径和名称(如果没有提供路径,将假定为应用
程序的当前目录设置);第二个是文件的打开模式。在上述代码中,指定了模式 ios_base::trunc(即便
指定的文件存在,也重新创建它)、 ios_base::in(可读取文件)和 ios_base::out(可写入文件)。
注意到在上述代码中使用了 is_open( ),它检测 open( )是否成功。
无论是使用构造函数还是成员方法open( )来打开文件流,都建议您在使用文件流对象前,
使用 open( )检查文件打开操作是否成功。
可在下述各种模式下打开文件流。
• ios_base::app:附加到现有文件末尾,而不是覆盖它。
• ios_base::ate:切换到文件末尾,但可在文件的任何地方写入数据。
• ios_base::trunc:导致现有文件被覆盖,这是默认设置。
• ios_base::binary:创建二进制文件(默认为文本文件)。
• ios_base::in:以只读方式打开文件。
• ios_base::out:以只写方式打开文件。