Вы пытаетесь конкатенации строковых литералов, как если бы они std::string
объекты. Они не. В C++ строковые литералы имеют тип const char[]
, а не std::string
.
Для объединения двух строковых литералов, поместите их рядом друг с другом, без оператора:
const char* cat = "Hello " "world";
Чтобы присоединиться к двум std::string
объектов используйте operator+(std::string, std::string)
:
std::string hello("hello ");
std::string world("world\n");
std::sting cat = hello + world;
Существует также operator+
присоединиться строковый литерал и a 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();
Какой тип 'i'? – hmjd
@hmjd i is int – Miles