c++ - Converting Character data to QString in Qt Creator -
मैं एक क्यूटी प्रोजेक्ट (क्यूटी प्रोजेक्ट 5.2.1) पर एक फ़ंक्शन के साथ काम कर रहा हूं जो एक यूडीपी डेटाग्राम में डिवाइस के आईपी पते को प्राप्त करता है। मुझे इसे QString को स्क्रीन पर सही ढंग से आउटपुट में बदलने की आवश्यकता है। डेटाग्राम एक क्यूबाइटअरेरे में "बफर" को पूर्णांक डेटा के रूप में संग्रहीत किया जाता है - इसलिए 10.1.10.60 का आईपी पता 0A010A3C के रूप में डेटाग्राम में दिखाया गया है। मैं एक कस्टस्ट्रिंग "nburn_data" में आईपी पते को स्टोर करने की कोशिश कर रहा हूं वर्तमान में मुझे यह संभाल करने के लिए यह कोड है:
nburn_data.append (QString :: fromUtf8 (बफर। बायें (2) .toHex ()। ToUpper (), बफ़र। बायें (2) आकार ()));
जब आउटपुट को स्क्रीन पर रखा जाता है (GUI) मुझे "10.1.10.60" नहीं मिलता है, मुझे "0A.01.0A.3C" मिलता है
मैंने सही तरीके से बदलने के लिए कुछ अलग तरीकों की कोशिश की है, लेकिन कुछ भी काम नहीं कर रहा है। कोई सुझाव?
संपादित करें: @ लाज़ोलो पेप- मैंने सुझाव कोड से आउटपुट (हाइलाइट) के साथ एक छवि संलग्न की है।
मुझे समझ में नहीं आता कि आप अपने कोड के साथ क्या करने की कोशिश करते हैं क्योंकि यह क्रम से बाहर है, लेकिन निम्न कोड मेरे लिए काम करता है:
main.cpp
#include & lt; QString & gt; # शामिल करें & lt; QByteArray & gt; # शामिल करें & lt; QDebug & gt; Int main () {QByteArray बफर = "0A010A3C"; कस्टस्ट्रिंग एनबर्न_डेटा; बाल ठीक है; (इंट I = 0; i & lt; 8; i + = 2) के लिए (यदि (i) nburn_data.append ('।'); Nburn_data.append (QByteArray :: संख्या (बफर। एमआईडी (i, 2) .toInt (और ठीक है, 16))); // इंट बफर का उपयोग करते समय, फिर इसके साथ उपरोक्त लाइन की प्रतिलिपि बनाएँ: // nburn_data.append (बफर। एमआईडी (i, 2)); } QDebug () & lt; & lt; nburn_data; वापसी 0; }
main.pro
टेम्पलेट = ऐप टारगेट = मुख्य क्यूटी = कोर स्रोत + = main.cpp
बिल्ड और भागो
क्यूमेक एंड amp; बनाओ और amp; amp; ./main
आउटपुट
"10.1.10.60"
संपादित करें: चूंकि आपको लगता है कि आपका प्रश्न को अपडेट करते समय इनपुट करें, आपको अपने मूल प्रश्न का उत्तर देने के लिए मेरे पिछले कोड में इस अद्यतन की आवश्यकता होगी:
tempbuffer = tempbuffer.toHex (); // अपने कोड में लूप से पहले
या आप अपने लूप में अनावश्यक संख्या रूपांतरण को हटा सकते हैं, इसलिए इस के साथ आंतरिक रेखा की जगह:
Nburn_data.append (बफर। एमआईडी (i, 2));
Comments
Post a Comment