Ich bin in einem printf Problem stecken. Ich würde schätzen, wenn ich hier etwas Hilfe bekommen kann: Im folgenden Code kann ich sehen, dass die Schriftfamilie im ersten printf(), richtig verschoben wird, aber wenn ich es auf Variable setze, erhalte ich nur eine leere Zeichenkette. Wie kann ich es in eine Variable setzen und die richtigen Werte haben? Ich will nur nicht 'font.family(). Family(). String(). Utf8(). Data()' überall?printf Frage mit einer const Char * Variable
Ich tat dies in der gleichen Methode:
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);
}
und die Unterschrift von 'Daten()' ist
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;
//...
}
Die Unterschrift von UTF-8() ist
class String {
CString utf8() const;
}
Vielen Dank.
Was ist diese Schriftbibliothek? C++ hat so etwas nicht. Versuchen Sie vielleicht, den von 'data()' zurückgegebenen Typ zu verwenden. Nebenbei, irgendein Grund, nicht 'std :: string' /' std :: cout' zu verwenden? – GManNickG
Es würde helfen, die Signatur der '.data()' Methode zu kennen. – pioto
Und family.string() gibt ein temporäres Objekt vom Typ CString zurück? –