c++ - 未创建具有 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 部分。如果我遗漏任何东西,请指导。
解决方案
打开的流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
);
推荐阅读
- python - 如果路径已存在且模式已通过,path.mkdir() 是否会更新文件权限?
- javascript - Javascript文本统计算法改进
- c - 使用星形图案显示倒置的半金字塔
- python - 将 Python dict 键和值转换为一个字符串?
- amazon-web-services - Aws 架构良好的框架是否支持 API?
- webgl - 如何在 WebGL/WebGL2 着色器中禁用使用制服的浮点算术优化
- amazon-web-services - 为什么 terraform 'apply' 命令失败?
- c# - 无法验证使用 jsonElement.TryGetProperty 加载到 JsonElement 中的 json 字符串中的元素和值
- java - MongoDB 文档使用 Java 中的 findOneAndUpdate 方法更新数组元素
- node.js - Npm 客户端看起来像更新但没有更新