#include <iostream>
using namespace std;
int main()
{
uint64_t a = 0xffffffffffffffff;
int c = 3;
char b[16];
sprintf(b, "%X", a);
cout << b << endl;
return 0;
}
这是打印和存储一半的fs,我需要他们的其余部分,我如何做到这一点?
您正在通过传递类型错误的数据来调用未定义的行为。
以大写十六进制打印uint64_t
的类型格式是prix64
,在标题
中定义。
另外,不要忘记为终止空字符分配。
#include <iostream>
#include <cstdio> // sprintf()
#include <cinttypes> // PRIX64 (and its family) is defined in this header
using namespace std;
int main()
{
uint64_t a = 0xffffffffffffffff;
int c = 3;
char b[17]; // allocate also for terminating null-character
sprintf(b, "%" PRIX64, a); // use correct format
cout << b << endl;
return 0;
}