C++ 二进制文件读写错误
C++ 二进制文件读写异常
这个问题困扰了我整个下午了.....不知道哪里发生了错误!!
异常信息:
FoodSystem.exe 中的 0x5500ad4a (msvcp100d.dll) 处最可能的异常: 0xC0000005: 读取位置 0x005685c4 时发生访问冲突
FoodSystem.exe 中的 0x5500ad4a (msvcp100d.dll) 处有未经处理的异常: 0xC0000005: 读取位置 0x005685c4 时发生访问冲突
在此先感谢大家的帮忙....谢谢!!
------解决方案--------------------
string是对象,不是一段内存,不能简单地将其内存保存到文件或从文件中读到内存。
搜“序列化与反序列化”
------解决方案--------------------
那你大可以不改类的结构,而修改序列化(读写文件)的操作。写文件时直接写入string内部的字符串,当然要记得把字符串长度也写进去,一般的格式是固定长度的数据代表字符串长度,后面跟着此长度的字符串,这样不就支持不定长字符串的序列化了,当然读的操作也要做对应修改。
这个问题困扰了我整个下午了.....不知道哪里发生了错误!!
异常信息:
FoodSystem.exe 中的 0x5500ad4a (msvcp100d.dll) 处最可能的异常: 0xC0000005: 读取位置 0x005685c4 时发生访问冲突
FoodSystem.exe 中的 0x5500ad4a (msvcp100d.dll) 处有未经处理的异常: 0xC0000005: 读取位置 0x005685c4 时发生访问冲突
在此先感谢大家的帮忙....谢谢!!
------解决方案--------------------
string是对象,不是一段内存,不能简单地将其内存保存到文件或从文件中读到内存。
搜“序列化与反序列化”
------解决方案--------------------
那你大可以不改类的结构,而修改序列化(读写文件)的操作。写文件时直接写入string内部的字符串,当然要记得把字符串长度也写进去,一般的格式是固定长度的数据代表字符串长度,后面跟着此长度的字符串,这样不就支持不定长字符串的序列化了,当然读的操作也要做对应修改。