printfの問題で立ち往生しています。ここで助けをいただければ幸いです。以下のコードでは、最初のprintf()でフォントファミリが正しく置き換えられていることがわかりますが、変数に設定すると、空の文字列しか取得できません。どうすればそれを変数に入れて正しい値にすることができますか?どこにでも「font.family()。family()。string()。utf8()。data()」と入力したくないだけですか?
私は同じ方法でこれを行いました:
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);
}
そして、「data()」の署名は
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;
}
ありがとうございました。