stdlib.h中system函數一定需要注意的地方

OS:Windows

IDE:VC++6.0

 

 

 

System函數大多情況下都是如下的應用的

這樣寫都沒有問題。
我在用system函數調用帶參數的批處理的時候
當參數是字符串並且該字符串含有空格的時候
例如 在cmd命令行下:運行run.bat "C:/Program Files/1.txt" "D:/Test"
的時候可以正常運行,但是如果用程序寫如下的代碼時就會出錯:
如果是這樣,調用cmd命令就會出錯,具體出什麼錯誤根據run.bat的內容

在cmd當中是把C:/Program Files/1.txt拆看成2個參數了
顯然這個不是我們想要的

如果讓能正確的調用了?
是在command這個命令再加一對引號就可以了
所以上述兩個例子可以改成:
 

char* command =
"/"run.bat /"C:/Program Files/1.txt/" /"D:/Test/"/"";
system(command);

雖然這樣寫麻煩了些,但是這可以很好的處理cmd命令中那些需要參數  有關的引號的亂七八糟的問題
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章