我有一个std::array
个CPoint对象,我想在mfc应用程序中输出:
std::array<CPoint,11> v = pDoc->m_ElementList.back();
for(int j=0; j < v.size(); j++ )
aDC.TextOutW(x+=3,y+=3, _T(v[n++]));
现在_T(v[n++])
显然不起作用,因为它是一个CPoint对象,而不是一个字符串。如何以这种方式输出CPoint对象?或者我如何将它们转换为字符串以便以这种方式使用它们?
答案 0 :(得分:4)
CString s;
CPoint p;
s.Format("x=%d / y=%d",p.x,p.y);
对于std :: string,请使用sprintf
或std::stringstream
。
stringstream ss;
ss << "x=" << p.x << "/" << "y=" << "p.y";
答案 1 :(得分:0)
我不知道CPoint
是或可以做什么,但我认为你必须写下这样的话:
std::wstring to_wstring(const CPoint& point)
{
#ifdef HAS_CPP11
using std::to_wstring;
return to_wstring(point.x) + L"; " + to_wstring(point.y);
#else
std::wstringstream s;
s << point.x << L"; " << point.y;
return s.str();
#endif
}
std::string to_string(const CPoint& point)
{
/*..*/
}