@MrZed
Привет! Пишу программу(если так можно сказать) компилятор на C++.
КОД:
КОД:
#include <iostream>
#include <string>
using namespace std;
int main () {
string test = "test.cpp";
string command = "cl /EHsc " + test;
system(command);
return 0;
}
Получаю ошибку:
main.cpp(10): error C2664: "int system(const char *)": невозможно преобразовать аргумент 1 из "std::basic_string<char,std::char_traits<char>,std::allocator<char>>" в "const char *"
C:UsersUserDesktopmain.cpp(10): note: Для выполнения данного преобразования нет доступного оператора преобразования, определенного пользователем, или вызов оператора невозможен
Простите если тупой вопрос, я только 2 день учу C++.
Решения вопроса 1
@0hquazEd
Проблема в том, что ты пытаешься конкатенировать
const char*
с std::string
. Так же в функцию, принимающую const char*
ты кладёшь строку из std. Тебе нужно вызвать c_str
у std::string
для получения C-style строкиint main(int argc, char** argv)
{
std::string test = "test.cpp";
std::string command = "cl /EHsc " + test;
std::string result = test + command;
system(result.c_str());
return 0;
}
Комментировать
Ответы на вопрос 0