Создайте строку имени файла с помощью sprintf и используйте спецификатор преобразования формата %d
для int
:
char filename[32];
sprintf(filename, "NEWIMAGE-%d", frames);
sprintf
работает так же, как printf
, но «печатает» строку вместо stdout.
Если вы объявили frames
как unsigned int
, используйте %u
. Если это size_t
, используйте %zu
. Подробности смотрите на дружественной printf
странице справочника, которая расскажет вам, как, например, вы можете обнулить номер.
Убедитесь, что массив символов, в который вы пишете, достаточно большой, чтобы вместить самый длинный вывод плюс дополнительный символ '\0'
. В вашем конкретном случае NEWIMAGE-10
+ 1 означает, что 11 + 1 = 12 символов достаточно, но 32 рассчитано на будущее в течение некоторого времени.
Если вы хотите программировать как профессионал, посмотрите на функции snprintf
и asnprintf
, которые могут ограничивать или распределять память, в которую записывается, соответственно.