c++ - 怎么样把向量坐标转为字符串,格式为“(x=, y=)”

【字号: 日期:2023-03-17浏览:34作者:雯心

问题描述

c++ - 怎么样把向量坐标转为字符串,格式为“(x=, y=)”

代码:string str(double dX, double dY)// 将向量坐标转为字符串,格式为“(x=, y=)”

{ return '(x=' + dX + ', y=' + dY + ')';}

错误信息:表达式必须包含整数或未区分范围的枚举类型c++ - 怎么样把向量坐标转为字符串,格式为“(x=, y=)”

问题解答

回答1:

常见的两个方案。

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可能会溢出。

回答2:include<string>

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

相关文章: