我正在使用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();
}
头文件中还有对该方法的其他引用,但我相信这是唯一重要的部分。
答案 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()
,它返回它的字符串表示。