我已经使用以下方法将uint64_t
转换为unsigned char*
:
uint64_t in;
unsigned char *out;
sprintf(out,"%" PRIu64, in);
现在我想要做相反的事情。有什么想法吗?
我已经使用以下方法将uint64_t
转换为unsigned char*
:
uint64_t in;
unsigned char *out;
sprintf(out,"%" PRIu64, in);
你使用 sprintf(3)
的直接类比是使用 sscanf(3)
:
unsigned char *in;
uint64_t out;
sscanf(in, "%" SCNu64, &out);
但可能 strtoull(3)
在错误处理方面更容易和更好:
out = strtoull(in, NULL, 0);
(本回答假定in
确实指向某个东西,类似于您的示例代码中out
必须指向某个东西。)