Estoy atascado en un problema de printf. Agradecería si pudiera obtener ayuda aquí: En el siguiente código, puedo ver que la familia de fuentes se desplazó correctamente en la primera impresión(), , pero si configuro la variable, solo obtengo una cadena vacía. ¿Cómo puedo ponerlo en una variable y tener los valores correctos? Simplemente no quiero escribir 'font.family(). Family(). String(). Utf8(). Data()' everywhere?printf pregunta con una variable const char *
hice esto en el mismo método:
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);
}
y la firma de 'datos()' es
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;
//...
}
La firma de UTF-8() es
class String {
CString utf8() const;
}
Gracias.
¿Qué es esta biblioteca de fuentes? C++ no tiene tal cosa. Tal vez intente incluir el tipo devuelto por 'data()'. En una nota lateral, ¿hay alguna razón para no usar 'std :: string' /' std :: cout'? – GManNickG
Sería útil conocer la firma del método '.data()'. – pioto
Y family.string() devuelve un objeto temporal de tipo CString? –