这是我的代码,我试过谷歌搜索但我可以找到为什么我的代码没有正确转换数字。但它符合要求。你能告诉我为什么它不起作用以及我该怎么做才能解决它。
#include <iostream>
using namespace std;
int main()
{
char a = 0;
char b = 0;
char c = 0;
char d = 0;
cout << "Enter 4 digit octal number ";
cin >> a >> b >> c >> d;
cout << "Decimal form of that number: " << (a * 512) + (b * 64) + (c * 8) + d << endl;
return 0;
}
答案 0 :(得分:5)
因为您将值作为字符获取,所以它们可能是您乘以的ascii值。尝试使用(a-'0'),(b-'0')等
您还应验证输入,以确保它是0到7之间的数字。
答案 1 :(得分:2)
为什么不让标准库完成这项工作?
#include <ios>
#include <ostream>
#include <iostream>
int main()
{
unsigned n;
std::cin >> std::oct >> n;
std::cout << n << std::endl;
}
答案 2 :(得分:0)
将您的值(a,b,c,d)转换为整数,然后乘以。