文字列リテラルをstd::string
オブジェクトであるかのように連結しようとしています。ではない。C++ では、文字列リテラルの型は でありconst char[]
、 ではありませんstd::string
。
2 つの文字列リテラルを結合するには、演算子を使用せずに並べて配置します。
const char* cat = "Hello " "world";
std::string
2 つのオブジェクトを結合するには、次を使用しoperator+(std::string, std::string)
ます。
std::string hello("hello ");
std::string world("world\n");
std::sting cat = hello + world;
operator+
文字列リテラルと を結合するもありstd::string
ます。
std::string hello("hello ");
std::string cat = hello + "world\n";
operator+
とかかることはstd::string
ありませんint
。
問題の解決策は、次std::stringstream
のものを使用するoperator<<
ことstd::cout
です。
std::stringstream spath;
spath << "images/" << i << ".png";
std::string path = spath.str();