私は、このコードによって開かれたファイルの名前/パスを使用して使用する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
の値をチェックしてください。
のthatsの#includeしているライブラリからのビルドでより良いの '' FILE *を使用するよりもオプション... –
私は、あなたが間違った場所にあなたのc_str()を持っている必要があるという完全なテキストを書いています。 – Bathsheba
どうもありがとうございます。でも、このコードをカスタマイズするにはリファレンスリンクを追加してください。たとえば、この行でエラーが発生すると、char配列でどのように使用できますか?FILE * lsofFile_p = popen((std ::文字列( "c:\\ adb connect")+ ip [20])。c_str、 "r"); とip [20] = 192.168.156.655:6985たとえば、 –
建物に何のエラーがありますか?あなたが参照しているライブラリは何ですか? –
これはCコードです。なぜC++タグですか? C++では、あなたはなく、私のライブラリも の#include の#include の#include の#include –
はいを持っていますFILE * lsofFile_p = popen(std :: string( "c:\\ adb install")+ argv [1])エラーを返します。それは "r"のために行の中にない行方不明の意味です –