首页 > 解决方案 > 文件模式标志“ios::app”是否用于删除已存在的文件?

问题描述

关于文件模式标志,我想到了这个问题ios::app。如果文件已经存在,它是否用于删除文件?

标签: c++

解决方案


不,该标志std::ios::app不用于删除已存在的文件。

设置标志时std::ios::app,所有输出操作都在文件末尾执行。

相反,您可以使用删除文件(如果存在)(您必须具有filesystem存在于c++17及以上的库):

try {
    if (std::filesystem::remove("file.txt"))
        std::cout << "file deleted.\n";
    else
        std::cout << "file not found.\n";

} catch (const std::filesystem::filesystem_error &err) {
    std::cout << "FS error: " << err.what() << '\n';
}

推荐阅读