Я застреваю в проблеме printf. Я был бы признателен, если бы я мог получить помощь здесь: В приведенном ниже коде я вижу, что семейство шрифтов правильно перемещается в first printf(), , но если я задаю его переменной, я получаю только пустую строку. Как я могу поместить его в переменную и иметь правильные значения? Я просто не хочу набирать 'font.family(). Family(). String(). Utf8(). Data()' всюду?printf вопрос с константой char * переменная
Я сделал это в тот же метод:
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);
}
и подписью 'данных()' является
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;
}
Спасибо.
Что это за библиотека шрифтов? C++ не имеет такой вещи. Возможно, попробуйте включить тип, возвращаемый 'data()'. С другой стороны, любая причина не использовать 'std :: string' /' std :: cout'? – GManNickG
Это поможет узнать подписи метода '.data()'. – pioto
И family.string() возвращает временный объект типа CString? –