gpt4 book ai didi

c++ - 从 std::string 转换为 uint8

转载 作者:太空宇宙 更新时间:2023-11-04 16:28:36 25 4
gpt4 key购买 nike

引用这里提供的漂亮解决方案, Convert string to int with bool/fail in C++ ,

我想将 std::string 转换为 8 位数字(无符号或有符号)问题是因为 8 位数字被表示为一个字符所以它被解析错误
(尝试解析超过 1 位数字的任何内容 - 例如 10 - 失败)

有什么想法吗?

最佳答案

使用模板特化:

template <typename T>
void Convert(const std::string& source, T& target)
{
target = boost::lexical_cast<T>(source);
}

template <>
void Convert(const std::string& source, int8_t& target)
{
int value = boost::lexical_cast<int>(source);

if(value < std::numeric_limits<int8_t>::min() || value > std::numeric_limits<int8_t>::max())
{
//handle error
}
else
{
target = (int8_t)value;
}
}

关于c++ - 从 std::string 转换为 uint8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9601919/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com