私はC++でOpenGLゲームを作っています。私は他の言語とは対照的に、C++にはかなり不慣れです。とにかく、私はいくつかの画像の「ベース」ディレクトリで文字列ストリームを作成します。次に、この文字列ストリームを関数パラメーターとしてコンストラクターに渡します。コンストラクターは画像ファイル名を追加してから、結果のパスを読み込もうとします。でも...
D:\CodeBlocks Projects\SnakeRoid\bin\Debug\Texts\ <-- before appending the filename
Ship01.tgacks Projects\SnakeRoid\bin\Debug\Texts\ <-- After.
明らかに正しくありません!結果はD:\ CodeBlocks Projects \ SnakeRoid \ bin \ Debug \ Texts\Ship01.tgaになります。
私のコードの関連部分:
std::stringstream concat;
std::string txtFullPath = "Path here";
...
concat.str(""); //Reset value (because it was changed in ...)
concat << texFullPath; //Restore the base path
PS = new PlayerShip(&TexMan, concat); //Call the constructor
コンストラクターのコード
PlayerShip::PlayerShip(TextureManager * TexMan, std::stringstream &path)
{
texId = 2;
std::cout << path.str(); //First path above
path << "Ship01.tga";
std::cout << path.str(); //Second - this is the messed up one
//Do more fun stuff
}
ストリングストリームにすでに含まれているものを「上書き」する理由を誰かが知っていますか?