我希望使用這個代碼打開的文件的名稱/路徑,並通過使用POPEN和argv [1](的文件名)
FILE* lsofFile_p = popen("c:\\adb install " + argv[1] , "r");
和argv跟蹤其輸出[1]這種方式給建設中的錯誤
我希望使用這個代碼打開的文件的名稱/路徑,並通過使用POPEN和argv [1](的文件名)
FILE* lsofFile_p = popen("c:\\adb install " + argv[1] , "r");
和argv跟蹤其輸出[1]這種方式給建設中的錯誤
這基本上是因爲你試圖將char[]
陣列文字添加到char*
類型:由於類型不匹配,編譯器不會這樣。
編寫(std::string("c:\\adb install ") + argv[1]).c_str()
連接你的字符串將會修復它。這依賴於運算符將的+
加載到std::string
,並且c_str()
提取字符緩衝區。因此,在全:
FILE* lsofFile_p = popen((std::string("c:\\adb install ") + argv[1]).c_str(), "r");
難道雖然讀的argv
該元素之前檢查的argc
值。
多數民衆贊成也比使用'FILE *'的更好的選擇... –
中缺少的含義是什麼?我已經把全文放入了,你需要輸入:你的c_str()放在錯誤的地方。 – Bathsheba
非常感謝你,但是請你添加一個引用鏈接,而不是我可以從中學習如何自定義這段代碼,例如我可以如何將它與char數組一起使用,因爲它會在此行中發生錯誤FILE * lsofFile_p = popen((std :: string(「c:\\ adb connect」)+ ip [20])。c_str,「r」); 和ip [20] = 192.168.156.655:6985例如 –
你會得到什麼錯誤?你參考了哪些庫 - 包括哪些庫? –
這是C代碼。爲什麼使用C++標籤?在C++中,你有沒有從我的庫庫的#include 的#include 的#include 的#include 的#include –
是在構建給出一個錯誤FILE * lsofFile_p = popen(std :: string(「c:\\ adb install」)+ argv [1])。c_str();是因爲「r」,它在行 –