将unsigned char *转换为uint64_t

时间:2013-09-10 00:22:04

标签: c

我已使用以下内容将uint64_t转换为unsigned char*

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

现在我想做相反的事情。有什么想法吗?

1 个答案:

答案 0 :(得分:9)

与您使用sprintf(3)所做的直接类比将是使用sscanf(3)

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

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

out = strtoull(in, NULL, 0);

(这个答案假定in确实指向了某些内容,类似于out必须指向示例代码中的某些内容。)