将unsigned char*转换为uint64_t

Ara*_*ash 6 c

我已转换uint64_tunsigned char*使用以下内容:

uint64_t in;
unsigned char *out;
sprintf(out,"%" PRIu64, in);
Run Code Online (Sandbox Code Playgroud)

现在我想做相反的事情.任何的想法?

Car*_*rum 9

与您正在做的事情直接类似的sprintf(3)是使用sscanf(3):

unsigned char *in;
uint64_t out;
sscanf(in, "%" SCNu64, &out);
Run Code Online (Sandbox Code Playgroud)

strtoull(3)在错误处理方面可能会更容易和更好:

out = strtoull(in, NULL, 0);
Run Code Online (Sandbox Code Playgroud)

(这个答案假设in真的指向某些东西,类似于如何out指向示例代码中的某些内容.)