fstreamopen详细解析

发布时间:2023-05-21

一、打开文件

fstream file;
file.open("file.txt", ios::in);
if (!file) {
    cout << "文件打开失败!" << endl;
}

在C++中,我们使用 fstream 来进行文件的输入输出,fstreamifstreamofstream 的基类,文件操作可以通过向 fstream 对象传递文件名称的方式来完成。打开文件的方式有多种:

  1. ios::in 表示以只读方式打开文件
  2. ios::out 表示向文件写入信息
  3. ios::app 表示在文件末尾添加信息
  4. ios::trunc 表示删除文件中的内容并重新开始写入信息
    我们可以通过文件检测来判断文件是否打开成功。

二、读取文件

string line;
while (getline(file, line)) {
    cout << line << endl;
}

读取文件中的内容可以使用 getline 函数,这个函数将从文件中读取一行并把这一行的内容保存在 line 变量中。当读到文件末尾时,该函数会返回 false,从而跳出 while 循环。

三、写入文件

fstream file;
file.open("file.txt", ios::out);
if (!file) {
    cout << "文件打开失败!" << endl;
}
file << "hello world" << endl;
file.close();

要在文件中写入内容,我们需要以输出方式打开文件并使用 << 运算符写入内容。在写入内容后,我们需要使用 close() 函数关闭文件。

四、追加文件

fstream file;
file.open("file.txt", ios::out | ios::app);
if (!file) {
    cout << "文件打开失败!" << endl;
}
file << "c++ is the best programming language" << endl;
file.close();

如果我们想要在文件末尾添加内容而不是覆盖原来的内容,我们需要使用 ios::app 选项打开文件。

五、文件清空

fstream file;
file.open("file.txt", ios::out | ios::trunc);
if (!file) {
    cout << "文件打开失败!" << endl;
}
file.close();

如果我们想要清空文件中的内容,我们需要以输出方式打开文件并使用 ios::trunc 选项打开文件,这样就可以删除文件中的内容并重新开始写入信息。

六、小结

fstream 是非常常用的文件操作类,在对文件进行操作时,我们需要注意文件是否成功打开,以及使用文件操作函数时是否使用了适当的文件模式。同时,我们需要注意文件的读写权限,避免出现读写错误的情况。