首页 > 后端开发 > C++ > 为什么创建文件时 `std::fstream::open()` 会抛出'没有这样的文件或目录”错误?

为什么创建文件时 `std::fstream::open()` 会抛出'没有这样的文件或目录”错误?

Mary-Kate Olsen
发布: 2024-11-01 04:22:27
原创
407 人浏览过

Why Does `std::fstream::open()` Throw a

std::fstream 的文件创建问题

问题:

使用 std 时: :fstream 用于文件 I/O,在尝试创建文件时遇到“没有此类文件或目录”的错误消息如果它尚不存在。具体来说,以下代码片段导致了该问题:

<code class="cpp">std::fstream my_stream;
my_stream.open("my_file_name", std::fstream::binary | std::fstream::in | std::fstream::out);
if (!my_stream)
    std::cout << "error" << strerror(errorno);</code>
登录后复制

如何解决此问题以确保在必要时创建文件?

答案:

如果在模式参数中指定了 std::fstream::in,则 fstream::open() 函数需要一个不存在的文件。要解决此问题,请从模式标志中删除 std::fstream::in 或在现有标志旁边添加 std::fstream::trunc。

<code class="cpp">// Remove std::fstream::in
std::fstream my_stream;
my_stream.open("my_file_name", std::fstream::binary | std::fstream::out);

// Add std::fstream::trunc
std::fstream my_stream;
my_stream.open("my_file_name", std::fstream::binary | std::fstream::in | std::fstream::out | std::fstream::trunc);</code>
登录后复制

以上是为什么创建文件时 `std::fstream::open()` 会抛出'没有这样的文件或目录”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板