首页 > 解决方案 > 如何在 C++ 中将 uint64_t 连接到 unsigned char*?

问题描述

我想将 a 连接uint64_tunsigned char*. 我不能使用sprintf(),strcpy()strcat()因为它们只接受char*作为参数。

#include <cstdint>

// I want to concatenate these two:

unsigned char data[8] = "tJQVfvcj";
uint64_t num = 1732462110473334785;

输出应等于:

unsigned char concat[28] = "tJQVfvcj1732462110473334785";

效率也很重要,尽管它是第二要务。我非常感谢任何建议。

编辑:我像这样使用 sprintf() :

  unsigned char data[9] = "tJQVfvcj";
  uint64_t num = 1732462110473334785;

  unsigned char concat[28];
  sprintf(concat, "%s%" PRId64 "", data, num);

但是,它会导致此错误:

错误:从 'unsigned char*' 到 'char*' 的无效转换 [-fpermissive]

标签: c++

解决方案


推荐阅读