【问题标题】:C++ Trying to return a string of an array of doubles(kinda)C ++试图返回一个双精度数组的字符串(有点)
【发布时间】:2013-11-27 23:02:48
【问题描述】:

我的代码是这样的:

double customer:: getAccounts()
    {
        for (int i=0;i<5;i++)
        {               
            if(Accounts[i].getBalance() != 0)
            {
            double x = Accounts[i].getBalance();
            return x;
            }
        }   
    }

目前您可以看到它只返回第一个帐户余额,然后在该返回点完成。但是我想以一种方法返回每个帐户余额以适应程序。这可能是一个字符串,但我不确定我会如何做到这一点。

我试过了:

string customer:: getAccounts()
    {
        string output;
        std::ostringstream s;
        for (int i=0;i<5;i++)
        {               
            if(Accounts[i].getBalance() != 0)
            {
            double x = Accounts[i].getBalance();    
            s << x;
            output += s.str;
            }
        }   
    return output;
}

但我得到以下信息:

错误 2 错误 C2679:二进制“+=”:未找到采用“重载函数”类型的右侧操作数的运算符(或没有可接受的转换)

还有:

错误 1 ​​错误 C3867: 'std::basic_ostringstream<_elem>::str': 函数调用缺少参数列表;使用 '&std::basic_ostringstream<_elem>::str' 创建指向成员的指针

有人告诉我应该做什么吗? :s

【问题讨论】:

    标签: c++ arrays string double


    【解决方案1】:

    使用std::vector (std::vector&lt;double&gt;) 作为返回类型。

    【讨论】:

      【解决方案2】:

      调用函数,而不是仅仅引用它。

      改变

      output += s.str;
      

      output += s.str();
      

      当然,更好的解决方案是使用vector&lt;double&gt; 类型,这样您就可以轻松地遍历这些值。实际上,字符串值之间甚至没有分隔符,因此您无法分辨一个值的结束位置和另一个值的开始位置。

      【讨论】:

        【解决方案3】:

        我认为你的方法有点奇怪,但这是正确的方法。

        string customer::getAccounts()
        {
            std::ostringstream s;
            for (int i=0;i<5;i++)
            {               
                if(Accounts[i].getBalance() != 0)
                {
                    double x = Accounts[i].getBalance();    
                    s << x;
                }
            }   
            return s.str();
        }
        

        【讨论】:

          猜你喜欢
          • 2010-09-24
          • 1970-01-01
          • 1970-01-01
          • 2014-06-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-02-11
          • 2011-08-11
          相关资源
          最近更新 更多