我有以下代码:
Tools::Logger.Log(string(GetLastError()), Error);
Run Code Online (Sandbox Code Playgroud)
GetLastError()返回一个DWORD数值,但构造函数std::string不接受a DWORD.
我能做什么?
Dou*_* T. 34
你想阅读ostringstream:
#include <sstream>
#include <string>
int main()
{
std::ostringstream stream;
int i = 5;
stream << i;
std::string str = stream.str();
}
Run Code Online (Sandbox Code Playgroud)
Joh*_*itb 22
您想将数字转换为string:
std::ostringstream os;
os << GetLastError();
Log(os.str(), Error);
Run Code Online (Sandbox Code Playgroud)
或者boost::lexical_cast:
Log(boost::lexical_cast<std::string>(GetLastError()), Error);
Run Code Online (Sandbox Code Playgroud)
Max*_*uxa 13
从C++ 11开始
std::to_string()与重载int,long,long long,unsigned int,unsigned long,unsigned long long,float,double,和long double.
auto i = 1337;
auto si = std::to_string(i); // "1337"
auto f = .1234f;
auto sf = std::to_string(f); // "0.123400"
Run Code Online (Sandbox Code Playgroud)
是的,我是粉丝auto.
要使用您的示例:
Tools::Logger.Log(std::to_string(GetLastError()), Error);
Run Code Online (Sandbox Code Playgroud)
lexical_cast对于如上所述的简单案例,请使用Boost :
Tools::Logger.Log(lexical_cast<string>(GetLastError()), Error);
Run Code Online (Sandbox Code Playgroud)