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中文网其他相关文章!