2012-12-21 70 views
1

如何將字符串轉換爲我可以通過system()執行的內容?試圖通過系統()運行字符串命令()

我有這個

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

這不會編譯和它給我一個轉換錯誤

從的std :: string沒有合適的轉換函數爲const char *

但如果我嘗試以運行

system("pause"); 

這工作

+2

在C字符串文字++具有類型'常量字符(&)[N]',不'的std :: string'。這就是第二個原因。 – chris

回答

7

嘗試

system(out.c_str()); 

系統函數聲明爲以下,這需要const char*作爲輸入參數:

int system(const char *command); 
+0

+1非常感謝。我嘗試了各種各樣的事情,試圖將它轉換爲char數組。 – nkuebelbeck

+0

@nkuebelbeck,請不要告訴我包含'(const char *)out'。永遠不要這樣做。 – chris