21xrx.com
2024-12-28 12:47:00 Saturday
登录
文章检索 我的文章 写文章
C++ 文件存在的判断及处理方法
2023-07-02 07:19:40 深夜i     --     --
文件存在判断 C++文件处理 文件操作函数 处理文件读写操作 文件打开方式

C++ 是一种高效的编程语言,它可以用于开发各种类型的应用程序。在编写 C++ 代码时,我们经常需要判断文件是否存在或处理已存在的文件。本文将介绍 C++ 中判断文件是否存在的方法和如何处理已存在的文件。

1. 判断文件是否存在

在 C++ 中,我们可以使用 std::filesystem 库来操作文件系统。为了使用 std::filesystem 库,请确保你使用的 C++ 编译器支持 C++17 标准。

下面是用 std::filesystem 库判断文件是否存在的示例代码:


#include <iostream>

#include <filesystem>

using namespace std;

int main() {

  string filename = "test.txt";

  if (filesystem::exists(filename))

    cout << "File exists." << endl;

   else

    cout << "File does not exist." << endl;

  

  return 0;

}

在上面的代码中,我们首先获取文件名(filename),然后使用 exists() 方法判断文件是否存在。如果文件存在,则输出“File exists.”;否则输出“File does not exist.”。

2. 处理已存在的文件

如果要处理已存在的文件,我们需要考虑以下两种情况:

2.1. 覆盖文件

如果希望用新的内容覆盖已存在的文件,可以使用 std::ofstream 库。下面是用 std::ofstream 库覆盖已存在的文件的示例代码:


#include <iostream>

#include <fstream>

using namespace std;

int main() {

  string filename = "test.txt";

  ofstream output(filename);

  if (output.is_open()) {

    output << "New content";

    output.close();

    cout << "File overwritten." << endl;

  } else

    cout << "Unable to open file." << endl;

  

  return 0;

}

在上面的代码中,我们首先创建一个名为“test.txt”的文件,并在其上打开输出流。如果文件已经存在,它将被覆盖为“New content”。

2.2. 追加文件

如果希望将新内容添加到已存在的文件,可以使用 std::ofstream 库中的 std::ios::app 标志。下面是将新内容追加到已存在文件的示例代码:


#include <iostream>

#include <fstream>

using namespace std;

int main() {

  string filename = "test.txt";

  ofstream output(filename, ios::app);

  if (output.is_open()) {

    output << "Additional content";

    output.close();

    cout << "File appended." << endl;

  } else

    cout << "Unable to open file." << endl;

  

  return 0;

}

在上面的代码中,我们同样创建一个名为“test.txt”的文件,并在其上打开输出流。如果文件已经存在,新内容将被追加到文件的末尾。

总结

在本文中,我们介绍了 C++ 中判断文件是否存在的方法以及处理已存在的文件的方法。std::filesystem 库提供了便捷的方式操作文件系统,并且 std::ofstream 库允许我们读取、写入和追加文件。在编写代码时,一定要注意错误处理和异常处理,以保证程序的稳定和安全。

  
  
下一篇: C++错误修复

评论区

{{item['qq_nickname']}}
()
回复
回复