我想知道是否有替代 OutputDebugString 的替代方法,但可以替代浮点数?因为我希望能够在 Visual Studio 的输出中查看这些值。
问问题
2914 次
2 回答
2
首先将您的浮点数转换为字符串
std::ostringstream ss;
ss << 2.5;
std::string s(ss.str());
然后用这个打印你新制作的字符串
OutputDebugString(s.c_str());
您可以选择跳过中间字符串
OutputDebugString(ss.str().c_str());
于 2013-04-28T01:32:04.507 回答
0
我结合了来自https://stackoverflow.com/a/27296/7011474的 Eric 的回答和 Toran Billups 的回答
来获得:
std::wstring d2ws(double value) {
return s2ws(d2s(value));
}
std::string d2s(double value) {
std::ostringstream oss;
oss << value;
return oss.str();
}
std::wstring s2ws(const std::string& s)
{
int len;
int slength = (int)s.length() + 1;
len = MultiByteToWideChar(CP_ACP, 0, s.c_str(), slength, 0, 0);
wchar_t* buf = new wchar_t[len];
MultiByteToWideChar(CP_ACP, 0, s.c_str(), slength, buf, len);
std::wstring r(buf);
delete[] buf;
return r;
}
double theValue=2.5;
OutputDebugString(d2ws(theValue).c_str());
编辑:感谢昆汀的评论,有一种更简单的方法:
std::wstring d2ws(double value) {
std::wostringstream woss;
woss << value;
return woss.str();
}
double theValue=2.5;
OutputDebugString(d2ws(theValue).c_str());
于 2019-04-16T14:53:51.447 回答