函数调用的参数太多,预期为0,有1." InfInt.h" toString函数

时间:2015-02-27 02:38:32

标签: c++

我正在使用c ++来解决问题。我需要找到100的阶乘并找到其数字的总和。由于c ++中变量的限制,我使用名为infint(https://code.google.com/p/infint/)的头文件。它有自己的功能将InfInt转换为字符串。但是我收到了这个错误:"函数调用的参数太多,预期为0,有1个。"我也在使用xcode。

我的代码:

#include <iostream>
#include "InfInt.h"
#define INFINT_USE_EXCEPTIONS
using namespace std;
int main() {
    InfInt result=1;
    for (int x=100;x>0;x--) {
        result*=x;
    }
    cout<<result<<endl;
    InfInt I;
    string sresult = I.toString(result);
    cout<<sresult<<endl;

    return 0;
}

我无法包含完整的标题代码,但您可以从链接下载。

toString标题的一部分:

inline std::string InfInt::toString() const
{//PROFILED_SCOPE
    std::ostringstream oss;
    oss << *this;
    return oss.str();
}

头文件中还有对该方法的其他引用,但我相信这是唯一重要的部分。

2 个答案:

答案 0 :(得分:1)

这正是错误消息所说的内容。当你不应该:

时,你正在向[{1}}传递论据
toString

而不是

string sresult = I.toString(result);

答案 1 :(得分:0)

尝试:

#include <iostream>
#include "InfInt.h"
#define INFINT_USE_EXCEPTIONS
using namespace std;
int main() {
    InfInt result=1;
    for (int x=100;x>0;x--) {
        result*=x;
    }
    cout<<result<<endl;
    string sresult = result.toString();
    cout<<sresult<<endl;

    return 0;
}

请注意result是一个InfInt对象,并且该对象有一个方法toString(),它返回它的字符串表示。