我正在尝试将整个流(多行)读入字符串。
我正在使用此代码,并且可以工作,但是却冒犯了我的风格感……当然,有一种更简单的方法吗?也许使用stringstreams?
void Obj::loadFromStream(std::istream & stream)
{
std::string s;
std::streampos p = stream.tellg(); // remember where we are
stream.seekg(0, std::ios_base::end); // go to the end
std::streamoff sz = stream.tellg() - p; // work out the size
stream.seekg(p); // restore the position
s.resize(sz); // resize the string
stream.read(&s[0], sz); // and finally, read in the data.
实际上,
const
对字符串的引用也可以,这可能会使事情变得更容易。
const std::string &s(... a miracle occurs here...)
string s = string(...)
。