如何在 boost::uint8_t 中存储零的值
how to store the value of zero inside boost::uint8_t
我有以下程序。奇怪的是,我期望零,但程序认为它是 48。如果我调试这个程序,我可以看到分配的值为 48,但如果我打印"someVar"的值,它会正确显示为 0。但是,如果我将"someVar"转换为uint16_t,那么一切正常。你能解释一下这个问题吗
#include "boost/cstdint.hpp"
#include <iostream>
#include "boost/lexical_cast.hpp"
using namespace boost;
int main(int argc, char ** args)
{
uint8_t someVar = lexical_cast<uint8_t> (args[1]);
if (someVar > 0)
cout << "greater than zero" << endl;
return 0;
}
字符零('0'
确实是 48,其中数字零作为整数,显然确实是零)。如果你做一个lexical_cast<int>
,它会做你想要的,并将 args[1] 转换为字符串中的整数。由于uint8_t
是一个字符,我怀疑词汇演员表会按照您的要求进行操作,并为您提供字符串的第一个字符。
相关文章:
- Boost program_options将多个配置文件解析结果存储到一个parsed_options中
- 如何使用 boost::future 重新抛出 std::exception_ptr 存储的原始异常?
- 如何将 time-uuid(存储在 boost uuid 中)转换为时间戳/自纪元以来的时间?
- 在可变参数模板函数中存储参数而不使用 boost::any
- 如何将 JSON 键值(我使用 cpp boost 解析)存储在相关数据结构中?
- Cmake忽略了我所有关于在boost::beast存储库中在哪里找到提升的指令
- 为什么使用 Boost.Intrusive 容器来存储多态对象是可以的?
- 使用 boost program_options时,如何确保声明具有C++的存储类或类型说明符?
- Boost::p roperty_tree:在XML解析器中使用std::vector<>在一个键中存储多个值
- 使用非连接存储(即!= vecs)和add_Edge()的最小boost aidgacency_list
- Boost::序列化存储结构时的堆栈溢出错误
- 从 C 字符串构造 boost::type_erasure::any,但存储为 std::string
- 将 STL 映射存储到 Boost ConstBufferSequence 中
- 我可以使用 boost::bind 来存储不相关的对象吗?
- 确实 boost::any / std::any 将小对象存储到位
- 命令行参数未存储(使用 boost)
- 存储Boost Multi_index索引迭代器
- (C )将lambda函数存储在Boost Multi_Array中
- BOOST :: Gregorian ::日期在内部存储日期
- 无法在 std::map 中存储 boost::bind 函数