代码:string str(double dX, double dY)// 将向量坐标转为字符串,格式为“(x=, y=)”
{ return "(x=" + dX + ", y=" + dY + ")"; }
错误信息:表达式必须包含整数或未区分范围的枚举类型
常见的两个方案。
std::string v1(double dX, double dY) { std::ostringstream stream; stream << "(x=" << dX << ", y=" << dY << ")"; return stream.str(); } std::string v2(double dX, double dY) { char buff[1024]; sprintf(buff, "(x=%f, y=%f)", dX, dY); return buff; }
v2可能会溢出。
c++11 提供std::to_string 用于字符串转换
或者如楼上所言
std::string v1(double dX, double dY) { std::ostringstream stream; stream << "(x=" << dX << ", y=" << dY << ")"; return stream.str(); }
按照楼主的程序还是to_string转换效率高一些。
建议返回 const string
常见的两个方案。
v2可能会溢出。
include<string>
c++11 提供std::to_string 用于字符串转换
或者如楼上所言
按照楼主的程序还是to_string转换效率高一些。
建议返回 const string