对 STL 字符串使用 fread/fwrite。这是对的吗?

2023-12-02

我有一个包含字符串的结构。像这样的东西:

struct Chunk { int a; string b; int c; };

因此,我想我无法使用 fread 和 fwrite 函数从文件中写入和读取此结构。因为字符串可能保留不同的内存容量。 但这样的代码可以正常工作。

Chunk var;

fwrite(&var, sizeof(Chunk), 1, file);

fread(&var, sizeof(Chunk), 1, file);

难道这里面真的有什么问题吗?


你有理由怀疑这一点。您应该只使用以下方式流式传输 POD 类型fwrite and fread and string is not POD.

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

对 STL 字符串使用 fread/fwrite。这是对的吗? 的相关文章

  • 在 C++ 中使用 matlab 结构(matlab 函数调用的返回值)(由 matlab 编译器生成的库)

    你好 我有一个相当简单的 matlab 函数 例如 function MYSTRUCT myfunc MYSTRUCT prop1 test MYSTRUCT prop2 foo MYSTRUCT prop3 42 end 我用 matla
  • Directory.Delete 之后 Directory.Exists 有时返回 true ?

    我有非常奇怪的行为 我有 Directory Delete tempFolder true if Directory Exists tempFolder 有时 Directory Exists 返回 true 为什么 可能是资源管理器打开了
  • 打印包含字符串和其他 2 个变量的变量

    var a 8 var b 3 var c hello my name is var a and var b bye print var c 当我运行程序时 var c 会像这样打印出来 hello my name is 8 and 3 b
  • 复制 std::function 的成本有多高?

    While std function是可移动的 但在某些情况下不可能或不方便 复制它会受到重大处罚吗 它是否可能取决于捕获变量的大小 如果它是使用 lambda 表达式创建的 它依赖于实现吗 std function通常被实现为值语义 小缓
  • C中的malloc内存分配方案

    我在 C 中尝试使用 malloc 发现 malloc 在分配了一些内存后浪费了一些空间 下面是我用来测试 malloc 的一段代码 include
  • 为什么 Google 测试会出现段错误?

    我是 Google Test 的新手 正在尝试提供的示例 我的问题是 当我引入失败并设置GTEST BREAK ON FAILURE 1 或使用命令行选项 GTest 将出现段错误 我正在考虑这个例子 https code google c
  • 使用接口有什么好处?

    使用接口有什么用 我听说它用来代替多重继承 并且还可以用它来完成数据隐藏 还有其他优点吗 哪些地方使用了接口 程序员如何识别需要该接口 有什么区别explicit interface implementation and implicit
  • 如何使用 LINQ2SQL 连接两个不同上下文的表?

    我的应用程序中有 2 个数据上下文 不同的数据库 并且需要能够通过上下文 B 中的表的右连接来查询上下文 A 中的表 我该如何在 LINQ2SQL 中执行此操作 Why 我们正在使用 SaaS 产品来跟踪我们的时间 项目等 并希望向该产品发
  • qdbusxml2cpp 未知类型

    在使用 qdbusxml2cpp 程序将以下 xml 转换为 Qt 类时 我收到此错误 qdbusxml2cpp c ObjectManager a ObjectManager ObjectManager cpp xml object ma
  • DbContext 和 ObjectContext 有什么区别

    From MSDN 表示工作单元和存储库模式的组合 使您能够查询数据库并将更改分组在一起 然后将这些更改作为一个单元写回存储 DbContext在概念上类似于ObjectContext 我虽然DbContext只处理与数据库的连接以及针对数
  • 如何禁用 fread() 中的缓冲?

    我正在使用 fread 和 fwrite 读取和写入套接字 我相信这些函数用于缓冲输入和输出 有什么方法可以在仍然使用这些功能的同时禁用缓冲吗 Edit 我正在构建一个远程桌面应用程序 远程客户端似乎 落后于服务器 我不知道可能是什么原因
  • 为什么 std::strstream 被弃用?

    我最近发现std strstream已被弃用 取而代之的是std stringstream 我已经有一段时间没有使用它了 但它做了我当时需要做的事情 所以很惊讶听到它的弃用 我的问题是为什么做出这个决定 有什么好处std stringstr
  • CMake 无法确定目标的链接器语言

    首先 我查看了this https stackoverflow com questions 11801186 cmake unable to determine linker language with c发帖并找不到解决我的问题的方法 我
  • AES 128 CBC 蒙特卡罗测试

    我正在 AES 128 CBC 上执行 MCT 如中所述http csrc nist gov groups STM cavp documents aes AESAVS pdf http csrc nist gov groups STM ca
  • 如何设置 log4net 每天将我的文件记录到不同的文件夹中?

    我想将每天的所有日志保存在名为 YYYYMMdd 的文件夹中 log4net 应该根据系统日期时间处理创建新文件夹 我如何设置它 我想将一天中的所有日志保存到 n 个 1MB 的文件中 我不想重写旧文件 但想真正拥有一天中的所有日志 我该如
  • 如何在非控制台应用程序中查看 cout 输出?

    输出到调试窗口似乎相当繁琐 我在哪里可以找到cout如果我正在编写非控制台信息 则输出 Like double i a b cout lt lt b lt lt endl I want to check out whether b is z
  • 如果没有抽象成员,基类是否应该标记为抽象?

    如果一个类没有抽象成员 可以将其标记为抽象吗 即使没有实际理由直接实例化它 除了单元测试 是的 将不应该实例化的基类显式标记为抽象是合理且有益的 即使在没有抽象方法的情况下也是如此 它强制执行通用准则来使非叶类抽象 它阻止其他程序员创建该类
  • C++ 条件编译

    我有以下代码片段 ifdef DO LOG define log p record p else define log p endif void record char data 现在如果我打电话log hello world 在我的代码中
  • 从列表中选择项目以求和

    我有一个包含数值的项目列表 我需要使用这些项目求和 我需要你的帮助来构建这样的算法 下面是一个用 C 编写的示例 描述了我的问题 int sum 21 List
  • 当我使用 OpenSSL1.1.0g 根据固定的 p 和 g 值创建 Diffie Hellman 密钥协议密钥时,应该执行哪些检查?

    您好 我尝试通过这段代码使用修复 p 和 g 参数来制作 Diffie Hellman Keysanswer https stackoverflow com a 54538811 4706711 include

随机推荐

  • Pandas DataFrame 中两个日期之间的差异

    我的数据框中有很多列 我必须找到名为的两列中的时间差in time and out time并将其放入同一数据框中的新列中 时间的格式是这样的2015 09 25T01 45 34 372Z 我正在使用 Pandas DataFrame 我
  • 没有 64 位临时值的定点乘法

    您好 我正在为嵌入式系统实现一些定点数学内容 并且我正在尝试执行两个 16 16 定点数的乘法而不创建 64 位临时数字 到目前为止 这是我想出的生成最少指令的代码 int multiply int x int y int result l
  • 树视图中的角度复选框

    我找不到一个真正合适的指令来从 JSON 结构创建带有复选框的树视图 因此我使用自调用迭代器来完成此操作 如下所示 http jsfiddle net u2ho9d3j 现在 我遇到的唯一问题是 查看第 40 行中的 Jeans 数据 是这
  • 如何在 IF 条件中分配变量,然后返回它?

    def isBig x if x gt 4 return apple else return orange 这有效 if isBig y return isBig y 这不起作用 if fruit isBig y return fruit
  • NSString 带有表情符号/表情符号 url 编码

    我正在尝试获取可能包含特殊字符和表情符号的 UITextField 的内容 并将其转换为可以在 GET 请求中传递给 PHP 服务的内容 如果我根本不对字符串进行编码 则表情符号显示得很好 我可以在数据库中看到它们 它们会正确地返回给我 但
  • 使用 nginx 托管在 docker 中时 Blazor WASM 样式丢失

    我有一个奇怪的问题 当我尝试使用 Nginx 托管我的 blazor WASM 项目时 我的样式被破坏了 我尝试遵循几个不同的指南 它们很相似并且对我来说有同样的问题 我这里有代码 https github com TopSwagCode
  • 如何刷新绑定源

    这真的让我抓狂 我有一个绑定到绑定源的 datagridview 单击按钮我使用数据上下文将新对象添加到我的数据库中 如何使绑定源在我的数据网格中显示新对象 我已经尝试再次设置绑定源的数据源 但它不起作用 即使新数据源确实返回列表中的新对象
  • 尽管存在默认方法,但 S3 通用“没有适用的方法”

    这很棘手 因为这个问题只发生在包的上下文中 在全局命名空间中定义时 一切都按预期工作 我定义了一个 S3 泛型 名为coerce na range 它有两种方法 coerce na range factor and coerce na ra
  • macOS 文本编辑器和代码编辑器列表 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 我搜索了这个并发现莫迪特的
  • VirtualizingStackPanel 在覆盖 ScrollViewer 的默认控件模板时停止工作

    我有一个列表框 其中包含很多渲染成本高昂的项目 然而 VirtualizingStackPanel 通过仅渲染可见项来解决这个问题 我想覆盖 ScrollViewer 的控件模板 因为默认模板在水平和垂直滚动条之间有灰色矩形 我刚刚复制了微
  • 如何使用 Joda Time 检查 DateTime 是否发生重复事件?

    I ve a DateTime代表重复事件的开始 ADays 每日周期 将代表循环周期 我认为这种反复发生的事件永远不会停止 from 2013 06 27 period 3 days nextOccurence will be 2013
  • 如何使用Python使用Bulk API将关键字存储在ES中

    我必须在与我的 python 程序集成的 ElasticSearch 中存储一些消息 现在我尝试存储的消息是 d message this is message for index nr in range 1 5 ElasticSearch
  • 使用 JPanel 列表制作表格

    我需要 Java 应用程序中的一个表 首先我习惯了类的对象JTable但我的桌子有很多功能 现在我尝试使用一系列功能JPanel组件而不是表格 如何制作包含面板列表的表格 如果您需要创建一个由以下内容组成的表JPanel含有JTextAre
  • Azure 搜索建议中存在不同的值?

    我正在将关系数据库上的搜索功能卸载到 Azure 搜索 我的产品表包含序列号 零件号等列 可以有多个具有相同零件号的序列号 我想创建一个可以自动完成零件编号的建议 但在我的场景中 我在建议中收到了很多重复项 因为在多个条目中找到了partN
  • Linux 排序命令的异常行为

    在 Linux shell 上的结果echo e arrays2 2 narrays 2 narrays3 2 sort is arrays 2 arrays2 2 arrays3 2 和结果echo e arrays2 28 narray
  • 如何为“两个”单词编写别名[重复]

    这个问题在这里已经有答案了 别名的标准用法是为扩展命令编写快捷方式 例如 alias ls ls color 我想知道是否可以在左侧添加 参数 以便以相反的方式工作 使用上面的例子 我有兴趣知道是否alias ls color ls 是可能
  • 在Android中使用aChartEngine组合两个条形图和两个折线图

    下面的代码组合了两个条形图和两个折线图 public class GraphCombination private Context context private String weekDays new String Sunday Mond
  • 在 Django 模型中设置主键起始值

    我正在准备一个模型如下 class SomeModel models Model id models BigIntegerField primary key True null False unique True 但我的主键必须是有效的 9
  • C# 已建立的连接被主机中的软件中止

    这些错误在我的游戏服务器上变得越来越频繁 它们导致服务器不断关闭并重新启动 System Net Sockets SocketException 0x80004005 An established connection was aborte
  • 对 STL 字符串使用 fread/fwrite。这是对的吗?

    我有一个包含字符串的结构 像这样的东西 struct Chunk int a string b int c 因此 我想我无法使用 fread 和 fwrite 函数从文件中写入和读取此结构 因为字符串可能保留不同的内存容量 但这样的代码可以