这句还是出错current_height = stoi(input.substr(2)); 你能用另外一个简单的方式实现这一句吗?不用stoi函数了
时间: 2024-12-16 18:17:44 浏览: 6
stoi_STOI_
5星 · 资源好评率100%
如果你想避免使用`std::stoi`函数直接解析字符串,你可以选择循环遍历输入的子串,并逐字符转换为整数。这里是用C++实现的一种简单方式:
```cpp
int current_height;
size_t start = 2; // 跳过前两个字符,假设它们是"height="
for (size_t i = 0; i < input.substr(start).length(); ++i) {
char c = input[start + i];
if (isdigit(c)) { // 判断字符是否是数字
current_height *= 10; // 移位以便添加每一位
current_height += c - '0'; // 将字符转为整数值并累加到current_height上
} else if (c == '.') { // 如果遇到小数点,则停止处理整数部分
break;
} else {
throw std::invalid_argument("Invalid value format"); // 如果不是数字或小数点,抛异常
}
}
```
这会逐个读取从`input.substr(2)`开始的字符,构建当前的高度值。注意这种方法只适用于输入是一个纯数字或包含一个小数点的简单情况。
阅读全文