1. C++中如何从八进制字符串转换回整数?
时间: 2024-10-16 19:03:05 浏览: 30
在C++中,如果你有一个包含八进制数的字符串,可以使用`std::stoi()`函数将其转换回整数。这个函数需要第二个可选模板参数指定基数,如果省略,则默认为10(十进制)。对于八进制,基数应设置为8。
```cpp
#include <iostream>
#include <string>
int stringToOctal(const std::string& octalStr) {
try {
return std::stoi(octalStr, nullptr, 8); // 第三个参数指定基数为8
} catch (const std::invalid_argument& ia) {
std::cerr << "Invalid octal number: " << octalStr << std::endl;
return 0; // 或者抛出异常处理错误情况
} catch (const std::out_of_range& or_){
std::cerr << "Number out of range: " << octalStr << std::endl;
return 0; // 同样,处理超出范围的情况
}
}
int main() {
std::string octalInput = "123";
int decimalValue = stringToOctal(octalInput);
if (decimalValue != -1) {
std::cout << "The decimal equivalent is: " << decimalValue << std::endl;
}
阅读全文