我需要关闭 std::fstream 吗? [复制]

2024-04-10

可能的重复:
我需要手动关闭 ifstream 吗? https://stackoverflow.com/questions/748014/do-i-need-to-manually-close-a-ifstream

我需要打电话吗fstream.close() or is fstream一个在销毁时关闭流的正确 RAII 对象?

我有一个本地的std::ofstream方法内的对象。我可以假设退出此方法后文件始终关闭而不调用 close 吗?我找不到析构函数的文档。


我认为之前的答案有误导性。

fstream is一个适当的 RAII 对象,它does范围结束时自动关闭,绝对有没有任何必要打电话close在范围结束时手动关闭就足够了。

特别是,这不是“最佳实践”,也没有必要刷新输出。

虽然德拉科沙的召唤是对的close让您可以检查流的失败位,无论如何,没有人这样做。

在理想的世界中,人们只需简单地调用stream.exceptions(ios::failbit)事先并处理抛出的异常fstream的析构函数。但不幸的是,析构函数中的异常在 C++ 中是一个被破坏的概念,所以这不是一个好主意。

So if如果您想检查关闭文件是否成功,请手动执行(但只有那时)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我需要关闭 std::fstream 吗? [复制] 的相关文章

随机推荐

  • 使用逻辑运算符进行 Laravel 表单验证

    当用户填写消息 文本区域 时 他 她无法填写日期 时间 地点值 仅当 Message 为空且所有这三个字段均已填充时 才会考虑这三个字段 如何使用 Laravel 表单验证来做到这一点 是否可以在Request的规则方法中定义这些逻辑 我是
  • 如何禁用部分 UISegmentedControl?

    以下是代码UISegmentedControl UISegmentedControl segmentedControl UISegmentedControl alloc initWithItems NSArray arrayWithObje
  • 来自 ISO8601 时间戳字符串的 Django 模型 DateTimeField

    这里是 Django 新手 我正在为带有字符串时间戳的 SQLite 数据库制作 Django 模型 例如2014 09 23T18 43 26 692Z 因为我想最终使用 Django 的过滤引擎进行查询 而不是使用strftime 我希
  • 如何获取故障转储

    我需要从程序中获取故障转储 我怎样才能得到它 该程序是用 C 编写的 故障转储到底是什么 它是什么时候创建的 它保存在哪里 我如何阅读它 既然你说的是 C 我假设你使用的是 Windows 平台 故障转储 或简称转储 是特定时间点进程的完整
  • Hibernate 抛出 HibernateQueryException:无法解析属性

    所以我有一个在休眠中定义为实体的表 如下所示 Entity Table name sec Preference public class Preference private long id Column name PreferenceId
  • 注册新成就:(#3502) 成就 URL 中的对象不是 game.achievement 类型

    我正在尝试为我的游戏添加新成就 当我尝试在 Graph API Explorer 上测试它时 我收到以下错误 3502 成就 URL 中的对象不是 game achievement 类型 我按照这篇文章 http developers fa
  • 在asp.net中使用doPostBack函数

    我想在我的链接中使用 doPostBack 函数 当用户单击它时 它不会重定向到另一个页面 并且页面将回发 我正在使用此代码 但它不起作用 我错过了哪里 lt a id Sample href javascript doPostBack P
  • 使用 GitHub 管理多个用户

    有人可以咨询我一件事吗 我们有一个项目 我们刚刚决定雇用更多程序员来完成它 到目前为止 我是唯一一个在 GitHub 上备份代码的程序员 但现在我需要找到一种安全的方法来管理多个程序员 因此 私有项目有一个主分支 其他程序员应该能够克隆它
  • 加载动态创建的 ASCX 控件(通过代码)

    我正在创造Web User Controls通过代码 我的 C 代码写出标记 代码隐藏和设计器文件在回调时写入磁盘 控件创建得很好 我可以将它们添加到我的网络项目中并将它们放在页面上 当我尝试使用加载控件时LoadControl path
  • 如何根据单元格值更改PHP中的单元格表格颜色?

    我刚刚开始使用 php 编程 我做了一个从数据库返回值的表 我正在尝试执行以下操作 根据第三列的值更改其颜色 我也是这么想的 但是数值重复了 而且颜色也不对 有人可以帮我吗 你明白我的问题了吗 谢谢你们 我带来的不便表示歉意 Code ta
  • 防止 Django 表单中的 SQL 注入

    我用它来验证 class MyValidationForm forms Form title forms CharField body forms Textarea taxonomy forms IntegerField 这是我基于阶级的观
  • 使用 Google Apps 脚本插入数据验证

    我正在尝试使用 Google Apps 脚本在 Gsheet 中插入单元格内下拉菜单 数据 gt 验证 gt 项目列表 我想这样做是因为每次我使用电子表格时 项目列表 都会略有变化 我不想每次打开电子表格时都必须转到 数据 gt 验证 gt
  • (Wordpress)我如何获取带有 html 标签的帖子的完整内容 - 未剥离

    我在我的网站上使用 WordPress 和 qtranslate 插件 并且尝试在每篇文章中显示语言标志 Qtranslate 将 html 标签插入到内容和标题中 例如 en gt 对于我在每篇文章中使用的每种语言 所以我需要一个条件来检
  • 用于 Java 项目的 NetBeans 远程编辑?

    我的项目使用了 Play 框架 所以我不需要可以编译的编辑器 我通常喜欢 NetBeans 但希望远程编辑服务器上的源文件以节省时间 我还经常在台式机 上网本之间切换进行开发 因此远程编辑可以使我免于同步开发环境 我对 Netbeans 远
  • 如何根据调试标志让 Django 使用两个不同的数据库

    我想在本地环境中使用简单的 SQLite 数据库 并在生产中使用 Postgresql 数据库 如何配置设置文件以根据以下值了解要使用哪个数据库DEBUG 有多种选择 下面是一个非常便宜的解决方案 Django 始终选择名为 default
  • webpack 是否使 ES6 模块兼容 ES5 浏览器?

    如果我使用ES6导入在 JS 文件中 例如 import tempates from templates js webpack 转换这类似于 webpack require r webpack exports harmony import
  • 如何在Azure WebJob函数中执行异步

    我有一个从服务器获取 api 数据的异步方法 当我在本地计算机上的控制台应用程序中运行此代码时 它会高速执行 每分钟在异步函数中推送数百个 http 调用 然而 当我将相同的代码从 Azure WebJob 队列消息触发时 它似乎同步运行
  • Blazor - 如何动态创建组件

    我想测试是否可以动态创建 Blazor 组件 我找不到任何方法来做到这一点 我尝试了一些在上面找到的动态内容这个链接 https learn blazor com pages dynamic content 但最终还没有得到任何结果 根据对
  • 如何设置JFrame中对象的位置?

    我有标签和 JButtons 我想在 JFrame 中定义位置 import java awt import java net InetAddress import java net UnknownHostException import
  • 我需要关闭 std::fstream 吗? [复制]

    这个问题在这里已经有答案了 可能的重复 我需要手动关闭 ifstream 吗 https stackoverflow com questions 748014 do i need to manually close a ifstream 我