#include <sstream>
#include <string>
#include <iostream>
void old_code()
{
std::stringstream concat;
std::string txtFullPath = "Path here";
concat.str("");
concat << txtFullPath;
std::stringstream& p = concat;
std::cout << p.str() << '\n'; //First path above
std::stringstream path;
path.str(p.str()); // does not advance the put pointer.
path << "Ship01.tga"; // writes to characters starting at path.str()[0]
std::cout << "Loading player ship from " << path.str() << '\n';
}
void new_code()
{
std::stringstream concat;
std::string txtFullPath = "Path here";
concat.str("");
concat << txtFullPath; // this makes it work
std::stringstream& path = concat;
std::cout << path.str() << '\n';
path << "Ship01.tga";
std::cout << path.str() << '\n';
}
int main()
{
std::cout << "old code: \n";
old_code();
std::cout << "new code: \n";
new_code();
}
I2luY2x1ZGUgPHNzdHJlYW0+CiNpbmNsdWRlIDxzdHJpbmc+CiNpbmNsdWRlIDxpb3N0cmVhbT4Kdm9pZCBvbGRfY29kZSgpCnsKICAgIHN0ZDo6c3RyaW5nc3RyZWFtIGNvbmNhdDsKICAgIHN0ZDo6c3RyaW5nIHR4dEZ1bGxQYXRoID0gIlBhdGggaGVyZSI7CiAgICBjb25jYXQuc3RyKCIiKTsKICAgIGNvbmNhdCA8PCB0eHRGdWxsUGF0aDsgCiAgICAKICAgIHN0ZDo6c3RyaW5nc3RyZWFtJiBwID0gY29uY2F0OwogICAgc3RkOjpjb3V0IDw8IHAuc3RyKCkgPDwgJ1xuJzsgLy9GaXJzdCBwYXRoIGFib3ZlCiAgICBzdGQ6OnN0cmluZ3N0cmVhbSBwYXRoOwogICAgcGF0aC5zdHIocC5zdHIoKSk7IC8vIGRvZXMgbm90IGFkdmFuY2UgdGhlIHB1dCBwb2ludGVyLgogICAgcGF0aCA8PCAiU2hpcDAxLnRnYSI7IC8vIHdyaXRlcyB0byBjaGFyYWN0ZXJzIHN0YXJ0aW5nIGF0IHBhdGguc3RyKClbMF0KICAgIHN0ZDo6Y291dCA8PCAiTG9hZGluZyBwbGF5ZXIgc2hpcCBmcm9tICIgPDwgcGF0aC5zdHIoKSA8PCAnXG4nOyAKfQp2b2lkIG5ld19jb2RlKCkKewogICAgc3RkOjpzdHJpbmdzdHJlYW0gY29uY2F0OwogICAgc3RkOjpzdHJpbmcgdHh0RnVsbFBhdGggPSAiUGF0aCBoZXJlIjsKICAgIGNvbmNhdC5zdHIoIiIpOwogICAgY29uY2F0IDw8IHR4dEZ1bGxQYXRoOyAvLyB0aGlzIG1ha2VzIGl0IHdvcmsKCgogICAgc3RkOjpzdHJpbmdzdHJlYW0mIHBhdGggPSBjb25jYXQ7CiAgICBzdGQ6OmNvdXQgPDwgcGF0aC5zdHIoKSA8PCAnXG4nOwogICAgcGF0aCA8PCAiU2hpcDAxLnRnYSI7CiAgICBzdGQ6OmNvdXQgPDwgcGF0aC5zdHIoKSA8PCAnXG4nOwp9CmludCBtYWluKCkKewogICAgc3RkOjpjb3V0IDw8ICJvbGQgY29kZTogXG4iOwogICAgb2xkX2NvZGUoKTsKCiAgICBzdGQ6OmNvdXQgPDwgIm5ldyBjb2RlOiBcbiI7CiAgICBuZXdfY29kZSgpOwp9Cg==