#include <sstream>
#include <string>
#include <iostream>

int main ()
{
    std::stringstream ss;
    ss << 55;

    const char* c1 = ss.str().c_str(); // *c1 = \0
    std::cout << c1 << std::endl;

    // looks to be doing the same, but in stages
    std::string s = ss.str();
    const char* c2 = s.c_str(); // *c2 = "55"
    std::cout << c2 << std::endl;
}