Как напечатать число в середине строки с определенным форматом?

У меня есть что-то вроде этого:

 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 после этого конкретного формата?

-5

Решение

<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);

Но так как это на самом деле помечено как , Вы должны просто использовать std::ostringstream:

std::ostringstream os;
os << "<span font='26'><b>" << count << "</b></span>";

и после этого os.str().c_str() будет использоваться так же, как wyn1 в предыдущем коде, но еще лучше, время жизни этой C-строки будет привязано к временной копии std::string объект извлекается из потока, поэтому вам не нужно выполнять управление памятью самостоятельно.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector