【问题标题】:fstream directly access struct variablefstream 直接访问结构变量
【发布时间】:2013-05-26 18:18:24
【问题描述】:

我知道如何用 fstream 读写一个完整的结构。但只是为了好奇,有没有办法直接访问(读取或写入)变量?我从未见过有人这样做。

aStruct * dummyStruct = 0;
int num = 7;

File.seekp(streamPosition, ios::beg);
File.seekp((unsigned long long)&(dummyStruct->aVariable), ios::cur);

File.write(reinterpret_cast<const char*>(&num), sizeof(num));

有人做过这样的事吗?

【问题讨论】:

  • 我建议使用offsetof 代替seekp 调用,但这当然是可行的。如果您只想编写单个变量(并且该变量与结构中的大小完全相同),那么我认为这没有问题。

标签: c++ struct fstream


【解决方案1】:

您可以使用offsetof来确定变量的偏移位置。

File.seekp(offsetof(aStruct, aVariable), ios::cur);

【讨论】:

  • 指针呢?对我来说,创建一个空指针并获取它的子指针看起来很奇怪。它当然有效。
  • 对不起,我错过了您分配空指针值。您需要更改的只是执行搜索然后读入num 的行。
猜你喜欢
  • 2010-11-25
  • 1970-01-01
  • 2018-09-01
  • 2019-06-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多