Размер строки Есть ли какой-либо прямой способ рассчитать размер внутренней строки в stringstream? Здесь str() возвращает копию, а затем получает размер строки. std::stringstream oss("String"); oss.str().size(); Ответ 1 std::stringstream oss("String"); oss.seekp(0, ios::end); stringstream::pos_type offset = oss.tellp(); Это для указателя записи, но результат будет одинаковым для указателя чтения на Visual С++ v10. Ответ 2 Конечно, есть: std::stringstream oss("Foo"); oss.seekg(0, ios::end); int size = oss.tellg(); Теперь размер будет содержать размер (в байтах) строки. EDIT: Это также хорошая идея поставить после вышеприведенного фрагмента, поскольку он возвращает внутренний указатель в начало строки. oss.seekg(0, ios::beg);
Ответ 1 std::stringstream oss("String"); oss.seekp(0, ios::end); stringstream::pos_type offset = oss.tellp(); Это для указателя записи, но результат будет одинаковым для указателя чтения на Visual С++ v10.
Ответ 2 Конечно, есть: std::stringstream oss("Foo"); oss.seekg(0, ios::end); int size = oss.tellg(); Теперь размер будет содержать размер (в байтах) строки. EDIT: Это также хорошая идея поставить после вышеприведенного фрагмента, поскольку он возвращает внутренний указатель в начало строки. oss.seekg(0, ios::beg);