2014-12-13 73 views
-1

我只是在不使用它的幾年之後回到C++中,並試圖通過system()函數執行「xcopy」命令。如何在C++中爲system()函數提供一個字符串

我認爲它會工作只是給它一個字符串,所以我不喜歡的東西:

string command = "xcopy " + source + " " + string(1,cInternalDrive) + ":\\" + workspace + " /D /E /C /R /H /I /K /Y /EXCLUDE:" + exclude; 
system(command); 

命令將它設置之後,該值爲「XCOPY F:\工作區* * d:\工作區\/D/E/C/R/H/I/K/Y /EXCLUDE:F:\ignore.txt「這是我想要的值,但system()不喜歡變量命令。

它說錯誤:沒有合適的轉換函數從:std :: string「到」const char *「存在 經過一些研究,我發現系統應該採用cstring類型,而不僅僅是一個常規字符串,但一些測試後,我不確定如何實現它

+1

comm and.c_str() – 2014-12-13 08:02:36

回答

1

這是因爲C++不能明確地投std::stringconst char* 您需要使用 std::string::c_str() 函數將返回爲const char *:

system(command.c_str()); 
相關問題