我陷入了 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;
}
谢谢你。