C++ 它表示没有可调用的匹配成员函数';插入';。这是一个学校项目,我真的被卡住了
所以说“num.insert”就是问题所在。我不知道如何解决这个问题。这是学校的一个项目,所以我需要尽快得到答案。请友善点。另外,请尽量不要改变我的代码这么多C++ 它表示没有可调用的匹配成员函数';插入';。这是一个学校项目,我真的被卡住了,c++,C++,所以说“num.insert”就是问题所在。我不知道如何解决这个问题。这是学校的一个项目,所以我需要尽快得到答案。请友善点。另外,请尽量不要改变我的代码这么多 int strToDecimal(int baseChosen, string num); string decimalToBase(int num, int baseChosen); int main(void) { int menu; int baseChosen; int numberDecimal; string
int strToDecimal(int baseChosen, string num);
string decimalToBase(int num, int baseChosen);
int main(void)
{
int menu;
int baseChosen;
int numberDecimal;
string number;
cout << " Hello! This program was created and perfected by Jacob Griffin. ";
cout << " Please choose a base to convert into." << endl;
cout << "1. Hex" << endl;
cout << "2. Octal" << endl;
cout << "3. Binary" << endl;
cout << "4. Decimal" << endl;
cin >> menu;
switch(menu)
{
case 1:
{
baseChosen = 16;
break;
}
case 2:
{
baseChosen = 8;
break;
}
case 3:
{
baseChosen = 2;
break;
}
case 4:
{
baseChosen = 10;
break;
}
default:
{
baseChosen = 0;
cout << "You cannot chose this."<<endl;
break;
}
}
cout << "Enter a number to convert: ";
cin >> numberDecimal;
//convert string to decimal
cout << "Decimal: " << numberDecimal << endl;
cout << "Binary: " << decimalToBase(numberDecimal, 2) << endl;
cout << "Octal: " << decimalToBase(numberDecimal, 8) << endl;
cout << "Hex: " << decimalToBase(numberDecimal, 16) << endl;
}
int strToDecimal(int baseChosen, string num)
{
int sum;
for(int i=0; i<num.length(); ++i)
{
switch(sum)
{
case 'A':
{
num.insert(0,10);
break;
}
case 'B':
{
num.insert(0,11);
break;
}
case 'C':
{
num.insert(0,12);
break;
}
case 'D':
{
num.insert(0,13);
break;
}
case 'E':
{
num.insert(0,14);
break;
}
case 'F':
{
num.insert(0,15);
break;
}
default:
{
sum=sum+(num[i]-48)*pow(baseChosen,num.length()-1-i);
break;
}
}
}
return sum;
}
string decimalToBase(int number, int base)
{
string result;
int remainder;
int num = number;
while(num > 0)
{
//cout << "loop";
remainder = num%base;
switch(remainder)
{
case 10:
{
result.insert(0,"A");
break;
}
case 11:
{
result.insert(0,"B");
break;
}
case 12:
{
result.insert(0,"C");
break;
}
case 13:
{
result.insert(0,"D");
break;
}
case 14:
{
result.insert(0,"E");
break;
}
case 15:
{
result.insert(0,"F");
break;
}
default:
{
result.insert(0,string(1, remainder + 48));
break;
}
}
num /= base;
}
return result;
}
int-strotdecimal(int-baseselected,string-num);
字符串十进制(int num,int baseselected);
内部主(空)
{
int菜单;
选择int基;
整数CIMAL;
字符串编号;
你能通过插入像“10”这样的字符串来修复编译器错误吗编译时的问题可能是试图在std::string
中插入一个int
,但真正的问题是,您首先要做的就是这样做。在该函数的上下文中修改num
,实际上是没有意义的,因为此时您应该做的事情似乎有点不正确只有在你的默认值
的情况下,甚至在我提出问题的情况下。与此相关的是,按你自己的方式构建sum
会调用未定义的行为,因为你从未给sum
一个初始值。因此,sum=sum+…
是在完全未知的东西上添加了一些东西。不过祝你好运。谢谢你的帮助,但我现在我不知道怎么修。你能告诉我怎么办吗?我是初学者。