Sono bloccato in un problema di stampa. Apprezzerei se posso ottenere un aiuto qui: Nel codice qui sotto, posso vedere la famiglia di caratteri di essere spostato correttamente in first printf(), ma se lo imposto a variabile, ottengo solo una stringa vuota. Come posso inserirlo in una variabile e avere i valori giusti? Non voglio semplicemente digitare 'font.family(). Family(). Stringa(). Utf8(). Data()' ovunque?domanda printf con variabile const char *
ho fatto questo con lo stesso metodo:
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);
}
E la firma del 'dei dati()' è
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 del utf8() è
class String {
CString utf8() const;
}
Grazie.
Che cos'è questa libreria di font? Il C++ non ha niente del genere. Forse prova a includere il tipo restituito da 'data()'. In una nota a margine, c'è qualche ragione per non usare 'std :: string' /' std :: cout'? – GManNickG
Sarebbe utile conoscere la firma del metodo '.data()'. – pioto
E family.string() restituisce un oggetto temporaneo di tipo CString? –