@MrZed

C++ System выполнение команд с аргументами?

Привет! Пишу программу(если так можно сказать) компилятор на 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:\Users\User\Desktop\main.cpp(10): note: Для выполнения данного преобразования нет доступного оператора преобразования, определенного пользователем, или вызов оператора невозможен

Простите если тупой вопрос, я только 2 день учу C++.
  • Вопрос задан
  • 342 просмотра
Решения вопроса 1
0hquazEd
@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;

	system(command.c_str());
	return 0;
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы