std::string 如何转int
时间: 2024-12-04 08:12:36 浏览: 7
将Windows字符串资源加载到std :: string或std :: wstring中
在C++中,你可以使用`std::stoi()`函数将`std::string`类型的数字转换为`int`。这个函数直接执行转换,如果输入无效(如非数字字符),则会抛出异常[^1]。这里有两个示例:
1. **常规方法**:
```cpp
std::string test = "11";
try {
int startid = std::stoi(test);
} catch (const std::invalid_argument& e) {
// 处理转换失败的情况
std::cout << "Invalid input: " << e.what() << '\n';
}
```
2. **使用`std::stringstream`**:
这种方法通过创建一个`std::stringstream`流来间接完成转换,可以更安全地处理可能的异常。
```cpp
std::string test = "11";
int startid;
std::stringstream ss(test);
ss >> startid;
if (ss.fail()) {
// 如果读取失败(如非数字字符)
std::cout << "Invalid input" << '\n';
} else {
// 成功转换
std::cout << "startid: " << startid << '\n';
}
```
阅读全文