[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->प्रारंभ के लिए हैं, तो आपको इसका उपयोग करने में सक्षम होना चाहिए
QP->start("/bin/sh", { "-c", "echo q | sudo -S hcitool info " + addr });
यदि आपके तर्क सी शैली एनयूएल समाप्त स्ट्रिंग हैं, तो आपके पास विकल्प हैं:
// 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]
コメント