【发布时间】:2014-05-23 18:14:59
【问题描述】:
使用 C++,我以二进制模式写入我的文件,使用这样的长度指示器方法:
ostringstream ID;
ID << b.getID(); //where b.getID() returns unsigned long
string IDStr = ID.str();
size_t IDlength = IDStr.length();
stream.write ((char *)(&IDlength), sizeof(size_t));
stream.write ((char *)(&IDStr),IDlength);
我是这样读的:
string IDStr,ID;
stream.read ((char *) (&IDStr), sizeof(size_t));
int Result;
stringstream convert(IDStr);
if ( !(convert >> Result) )//give the value to Result using the chars in string
Result = 0;//if that fails set Result to 0
stream.read ((char *)ID,Result);
这是对的吗?以及如何正确读取它,我似乎无法正确读取代码,请帮忙?
【问题讨论】:
-
使用
IDStr.c_str()获取字符串的内容,而不是&IDStr。 -
如果您需要阅读代码方面的帮助,您需要展示您迄今为止所尝试的内容。
-
您写的第一件事是
size_t,所以这是您需要阅读的第一件事。string不是size_t,也不是char *。 -
阅读到底有什么问题?
标签: c++ file binaryfiles