Не существует подходящей функции преобразования в "const char*"
Начал переписывать задачу с PascalABC на C++ и столкнулся с ошибкой "не существует подходящей функции преобразования из "std::basic_string<char, std::char_traits, std::allocator>" в "const char *". А так же ошибка с min[i] - "слишком много аргументов функции". Делаю в формах Windows.
for (int i = 0; i < m; ++i) {
str = lines[a[i]];
MarshalString(str, str2);
name[i] = str2.substr(1, str2.find(' ') - 1);
str2.erase(1, str2.find(' '));
atoi(str2.substr(1, str2.find(' ') - 1), min[i], z); // Здесь ошибка
}
Если нужно, могу привести код с Паскаля.
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
atoi нужна C-строка.
Можно
atoi(str2.substr(1, str2.find(' ') - 1).c_str())
Только вот у вас atoi вызывается с тремя параметрами, в то время как это функция от одного аргумента, и возвращаемое ею значение вы игнорируете.
Но для string лучше воспользоваться функцией stoi. Вот у нее действительно три аргумента :)