有没有直接计算stringstream内部字符串大小的方法?
这里,str()
返回一个副本,然后获取字符串的大小。
std::stringstream oss("String");
oss.str().size();
有没有直接计算stringstream内部字符串大小的方法?
这里,str()
返回一个副本,然后获取字符串的大小。
std::stringstream oss("String");
oss.str().size();
有如下内容:
std::stringstream oss("Foo");
oss.seekg(0, ios::end);
int size = oss.tellg();
现在,size将包含字符串的大小(以字节为单位)。
编辑:
这也是一个好主意,可以放在上面的片段后面,因为它会把内部指针放回到字符串的开头。
oss.seekg(0, ios::beg);
std::stringstream oss("String");
oss.seekp(0, ios::end);
stringstream::pos_type offset = oss.tellp();
这是针对写指针的说明,但在 Visual C++ v10 上读指针的结果也是相同的。
tellp()
返回的是字节数,而不是字符数。如果你想要字符数,你需要做相反的操作(offset / sizeof(wchar_t)
)。 - Alexis Wilke