私はこのようなものを持っています:
count++;
sprintf(buf, "%d", count);
char * wyn1 = " <span font='26'><b>buf</b></span>";
gtk_label_set_markup( GTK_LABEL( wynik1 ), wyn1 );
しかし、 の値が にcount
出力されることはありませんwyn1
。
この特定の形式に従って値を出力する方法はbuf
?wyn1
私はこのようなものを持っています:
count++;
sprintf(buf, "%d", count);
char * wyn1 = " <span font='26'><b>buf</b></span>";
gtk_label_set_markup( GTK_LABEL( wynik1 ), wyn1 );
しかし、 の値が にcount
出力されることはありませんwyn1
。
この特定の形式に従って値を出力する方法はbuf
?wyn1
<span font='26'><b>
= 19 文字
</b></span>
= 11 文字
'\0'
= 1 文字
でcount
、3 桁以上は必要ありません。wyn1
次に、その形式で変数に直接出力できます(buf
省略できます):
char * wyn1 = malloc(19 + 3 + 11 + 1);
sprintf(wyn1, "<span font='26'><b>%3d</b></span>", count);
しかし、これは実際にはc++としてタグ付けされているため、次のように単純に使用する必要がありますstd::ostringstream
。
std::ostringstream os;
os << "<span font='26'><b>" << count << "</b></span>";
その後は前のコードとos.str().c_str()
同じようwyn1
に使用できますが、さらに良いことに、この C 文字列の有効期間はstd::string
、ストリームから取得されたオブジェクトの一時コピーに関連付けられるため、自分でメモリ管理を行う必要はありません。自分の。