how to convert uint64_t value in const char string?

// length of 2**64 - 1, +1 for nul.
char buff[21];

// copy to buffer
sprintf(buff, "%" PRIu64, trackuid);

// call function
func(buff);

This requires C99, however, my memory says the MS compiler doesn't have PRIu64. (PRIu64 is in inttypes.h.) YMMV.


Use snprintf to convert numbers to strings. For integer types from stdint.h header use the format macros from inttypes.h.

#define __STDC_FORMAT_MACROS // non needed in C, only in C++
#include <inttypes.h>
#include <stdio.h>

void func(const char *uid)
{
    printf("uid is %s\n",uid);
}

int main()
{
    uint64_t trackuid = 2906622092;

    char buf[256];
    snprintf(buf, sizeof buf, "%"PRIu64, trackuid);

    func(buf);

    return 0;
}

Tags:

C