[ad_1]
変数としてオプション「addr」が必要です。
今使われているのは記号…ではないでしょうか?
適切な構文は何ですか?
..ここで定義/使用されているとおり
char addr[19] = { 0 };
ba2str(&(ii+i)->bdaddr, addr);
<pre lang="text"> <pre>QP->start("/bin/sh", { "-c", "echo q | sudo -S hcitool info addr" });
私が試したこと:
>QP->start("/bin/sh", { "-c", "echo q | sudo -S hcitool info " + _ " addr" })
解決策 1
QP->start("/bin/sh", { "-c", "echo q | sudo -S hcitool info " + _ " addr" })
アンダースコアがそこで何をしているのかわかりません。 もしかしてタイプミス?
いったいなぜそう思うのでしょうか addr
引用符で囲まれた文字列内はプログラム変数を参照しますか? 変数があった場合 info
または echo
あなたのプログラムでは、それらの値も文字列に置換されることを期待しますか????
引数の std::string セマンティクスが QP->start のものであると仮定すると、次を使用できるはずです
C++
QP->start("/bin/sh", { "-c", "echo q | sudo -S hcitool info " + addr });
引数が C スタイルの NUL 終了文字列の場合は、次のオプションがあります。
C++
// using std::string std::string cmdstr{"echo q | sudo -S hcitool info "); cmdstr.append(addr); QP->start("/bin/sh", { "-c", cmdstr.c_str() }; //using sprintf #include <cstdio> char cmdstr[256]; // something big enough to not overflow sprintf(cmdstr, "echo q | sudo -S hcitool info %s", addr); QP->start("/bin/sh", { "-c", cmdstr}; //using strcat #include <cstring> char cmdstr[256]{"echo q | sudo -S hcitool info "}; strcat(cmdstr, addr); QP->start("/bin/sh", { "-c", cmdstr}; //using a string-stream #include <sstream> std::stringstream command{"echo q | sudo -S hcitool info "}; comand << addr; QP->start("/bin/sh", { "-c", command.str().c_str() };
おそらく他にもあるでしょう。 QString やその仲間たちも同様の機能を提供していると思います。
[ad_2]
コメント