我将尽可能具体...... 我有这段代码:
// bintodec.cpp : Defines the entry point for the console application.
#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
int main(){
string inp;
int dec = 0;
char base;
cout << "Input a number: ";
cin >> inp;
cout << "Input the base your number is in: ";
cin >> base;
for (int i = inp.length()-1, j = 0; i >= 0; i--, ++j)
dec += (inp[i]-48) * pow((float)base-48, j);
cout << "Your number in base 10 is: " << dec <<endl;
system("pause");
return 0;
}
我正在尝试重新/简化它......
{
int j=0,x;
double dec,y;
for(int i = inp.length()-1; i >= 0; i--)
{
x=(inp[i]-48);
y=pow((float)base-48, j);
dec=dec + x * y;
++j;
}
}
我有:
int j=0,x;
double dec, y;
char base, inp;
cout << "Input a number: ";
cin >> inp;
cout << "Input the base your number is in: ";
cin >> base;
{
for (int i = inp.length()-1; i>=0; --i)
x=(inp[i]-48);
y=pow((float)base-48, j);
dec=dec + (x*y)
++j;
{
return 0;
由于某种原因,它不起作用..视觉工作室报道:
我想重写并简化它..有错误请帮助..谢谢!
答案 0 :(得分:6)
1:您无法执行inp.length()
,因为您将inp
声明为char。而char不是字符串。
尝试将inp
声明为string
:
string inp;
2:“下标需要数组或指针类型”
与上述相同的原因。 inp
是一个字符,而不是数组或字符串。
3/4:“'++'需要l值”
您在dec=dec + (x*y)