首页 > 解决方案 > 未创建具有 fstream 对象的文件对象

问题描述

我正在尝试创建一个二进制文件,如下所示:

#include <iostream>
#include<fstream>

using namespace std;

int main()
{
    cout<<"Hello World";
    fstream fileObj = std::fstream("test_File.db", std::ios::in | std::ios::out | std::ios::binary);
    if(fileObj)
       std::cout<<"success";
    else
       std::cout<<"fail";
    return 0;
}

但是没有创建 fileObj 并且总是执行 else 部分。如果我遗漏任何东西,请指导。

标签: c++fstream

解决方案


打开的流in | out | binary不会创建不存在的文件。你应该养成阅读文档的习惯!

尝试in | out | app | binary(假设您希望保留现有内容;还要养成清楚说明您的目标/要求的习惯)。

并且没有必要从这样的临时初始化;只需以通常的方式实例化对象,例如

std::fstream fileObj(
   "test_File.db",
   std::ios::in | std::ios::out | std::ios::app | std::ios::binary
);

推荐阅读