我有这样的事情:如何将数字打印到具有特定格式的字符串中间?
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
对象的临时副本相关联,因此您不需要执行内存m管理你自己。
@ user2141238:检查我的第一个修订:http://stackoverflow.com/revisions/15702421/1 – LihO
欢迎来到SO。我编辑了你的问题,因为它处于糟糕的状态(这就是为什么你会收到一些用户的反对票)。请阅读[常见问题](http://stackoverflow.com/faq)和[关于页面](http://stackoverflow.com/about)以避免将来出现这种情况:) – LihO