我正在编写一个程序,将四位数的八进制数字转换为十进制数字。我必须使用字符进行此程序。我的讲师说没有字符或字符串。没有人没有我该怎么做?这是我的代码:
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;
if (a - '0' > 7 || b - '0' > 7 || c - '0' > 7 || d - '0' > 7 || !isdigit(a)
|| !isdigit(b) || !isdigit(c) || !isdigit(d)) {
cout << "Bad data";
}
else
cout << "Decimal form of that number: " << ((a - '0') * 512) + ((b - '0')
* 64) + ((c - '0') * 8) + (d - '0') << endl;
return 0;
}
最佳答案
当我提供isdigit
为
bool isdigit(char digit) {
return digit >= '0' && digit <='9';
}
并将第一个检查简化为
if (!isdigit(a) || !isdigit(b) || !isdigit(c) || !isdigit(d)) {
cout << "Bad data";
} else ...
关于c++ - C++ if语句超过4位数字,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5715831/