如何將字符串轉換爲我可以通過system()執行的內容?試圖通過系統()運行字符串命令()
我有這個
std::string out = "some command to run" + some_string_variable;
system(out);
這不會編譯和它給我一個轉換錯誤
從的std :: string沒有合適的轉換函數爲const char *
但如果我嘗試以運行
system("pause");
這工作
如何將字符串轉換爲我可以通過system()執行的內容?試圖通過系統()運行字符串命令()
我有這個
std::string out = "some command to run" + some_string_variable;
system(out);
這不會編譯和它給我一個轉換錯誤
從的std :: string沒有合適的轉換函數爲const char *
但如果我嘗試以運行
system("pause");
這工作
嘗試
system(out.c_str());
系統函數聲明爲以下,這需要const char*
作爲輸入參數:
int system(const char *command);
+1非常感謝。我嘗試了各種各樣的事情,試圖將它轉換爲char數組。 – nkuebelbeck
@nkuebelbeck,請不要告訴我包含'(const char *)out'。永遠不要這樣做。 – chris
在C字符串文字++具有類型'常量字符(&)[N]',不'的std :: string'。這就是第二個原因。 – chris