опитвайки се да изпълня команда за низ чрез system()

Как да конвертирам низ в нещо, което мога да изпълня чрез system()?

имам това

std::string out = "some command to run" + some_string_variable;
system(out);

Това няма да се компилира и ми дава грешка при преобразуване

Няма подходяща функция за преобразуване от std::string към const char *

Но ако се опитам да избягам

system("pause");

Това работи


person nkuebelbeck    schedule 21.12.2012    source източник
comment
Низовите литерали в C++ имат тип const char (&)[N], а не std::string. Затова второто работи.   -  person chris    schedule 21.12.2012


Отговори (1)


Опитвам

system(out.c_str());

системна функция, декларирана по-долу, която приема const char* като входен аргумент:

int system(const char *command);
person billz    schedule 21.12.2012
comment
+1 благодаря ви много. Опитах всякакви неща, за да се опитам да го конвертирам в масив от символи. - person nkuebelbeck; 21.12.2012
comment
@nkuebelbeck, Моля, не ми казвайте, че включва (const char *)out. Никога не правете това. - person chris; 21.12.2012