C++将int和string转换为char*

use*_*514 7 c++ string char

这有点难,我无法弄明白.

我有一个int和一个字符串,我需要将其存储为char*,int必须是十六进制

int a = 31;
string str = "a number";
Run Code Online (Sandbox Code Playgroud)

我需要将两个单独的选项卡放入char*中.

输出应该是这样的:

1F      a number
Run Code Online (Sandbox Code Playgroud)

CB *_*ley 20

适当的包括:

#include <sstream>
#include <ostream>
#include <iomanip>
Run Code Online (Sandbox Code Playgroud)

像这样的东西:

std::ostringstream oss;
oss << std::hex << a << '\t' << str << '\n';
Run Code Online (Sandbox Code Playgroud)

复制结果:

oss.str().c_str()
Run Code Online (Sandbox Code Playgroud)

请注意,结果c_str是临时的(!),const char*所以如果你的函数需要,char *你将需要在某处分配一个可变副本.(也许将其复制到std::vector<char>.)