के साथ printf प्रश्न मैं एक printf समस्या में फंस गया हूँ। अगर मैं यहां कुछ मदद प्राप्त कर सकता हूं तो मैं सराहना करता हूं: नीचे दिए गए कोड में, मैं फ़ॉन्ट प्रिंट को पहले printf(), में सही ढंग से विस्थापित कर सकता हूं लेकिन यदि मैं इसे चर में सेट करता हूं, तो मुझे केवल खाली स्ट्रिंग मिलती है। मैं इसे एक चर में कैसे रख सकता हूं और सही मान रख सकता हूं? मैं सिर्फ 'font.family()। Family()। String()। Utf8() डेटा()' हर जगह टाइप करना नहीं चाहता हूं?एक कॉन्स्ट char * चर
मैं एक ही विधि में ऐसा किया:
void myMethod() {
const char* fontFamily = font.family().family().string().utf8().data();
// get displayed correctly
printf ("drawText1 %s \n", font.family().family().string().utf8().data());
// get an empty string
printf ("drawText2 %s \n", fontFamily);
}
और के हस्ताक्षर 'डेटा()'
class CString {
public:
CString() { }
CString(const char*);
CString(const char*, unsigned length);
CString(CStringBuffer* buffer) : m_buffer(buffer) { }
static CString newUninitialized(size_t length, char*& characterBuffer);
const char* data() const;
//...
}
UTF8 के हस्ताक्षर() है
class String {
CString utf8() const;
}
धन्यवाद।
यह फ़ॉन्ट लाइब्रेरी क्या है? सी ++ में ऐसी कोई बात नहीं है। शायद 'डेटा() 'द्वारा लौटाए गए प्रकार को शामिल करने का प्रयास करें। एक तरफ ध्यान दें, किसी भी कारण से 'std :: string'/'std :: cout' का उपयोग न करें? – GManNickG
यह '.data()' विधि के हस्ताक्षर को जानने में मदद करेगा। – pioto
और family.string() CSTring प्रकार का अस्थायी ऑब्जेक्ट देता है? –