如何检查文件是否已存在于 fstream C++ 中

How to check if a file is already present in fstream C++

我一直在使用 fstream 编写代码来创建一个具有特定编号的文件,现在我想让 mmy 程序检查每当创建新条目时该条目的名称是否已被使用, TIA 为您提供所有帮助。 我试过按照所附代码自己做,但我不确定它是否正常工作。 目的是检查文件是否已经创建,如果是,则会给出错误,否则会提示用户继续创建新文件。

cout<<"Enter your NIC or Form B number: ";
cin.ignore();
gets(det.nic);

entries.open(det.nic, ios::out);
if (!entries)
{
    cout<<setw(70)<<"\nYou've already availed the fund!\n";
    system("pause");
    system("cls");
    goto m;
}
else
{

如果你只需要检查一个文件是否存在而不实际使用它,你可以使用 <filesystem> 库如果你的编译器支持它。它提供了一个 exists() 功能,可以在不打开文件的情况下执行此操作。

#include <filesystem>

namespace fs = std::filesystem;

if (fs::exists(file_path)) {
    std::cout << "File already exists!\n";
}

您可以使用 std::ifstream("filename").good().

额外提示:关于您对问题的描述(创建一个不存在的文件),请查看竞争条件