将unsigned char*转换为uint64_t

7

我已经使用以下方法将uint64_t转换为unsigned char*

uint64_t in;
unsigned char *out;
sprintf(out,"%" PRIu64, in);

现在我想要做相反的事情。有什么想法吗?
1个回答

10

你使用 sprintf(3) 的直接类比是使用 sscanf(3)

unsigned char *in;
uint64_t out;
sscanf(in, "%" SCNu64, &out);

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

out = strtoull(in, NULL, 0);

(本回答假定in确实指向某个东西,类似于您的示例代码中out必须指向某个东西。)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接