搜尋

首頁  >  問答  >  主體

c++ - 怎麼樣把向量座標轉為字串,格式為“(x=, y=)”

#程式碼:
string str(double dX, double dY)// 將向量座標轉為字串,格式為「(x=, y=)」

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

錯誤訊息:
表達式必須包含整數或未區分範圍的枚舉類型

#
过去多啦不再A梦过去多啦不再A梦2746 天前1287

全部回覆(2)我來回復

  • 我想大声告诉你

    我想大声告诉你2017-06-05 11:13:01

    常見的兩種方案。

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

    回覆
    0
  • 大家讲道理

    大家讲道理2017-06-05 11:13:01

    include

    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

    回覆
    0
  • 取消回覆