我有一些人类可读的数字数据istream.值范围从0到255,我想存储它们uint8_t.不幸的是,如果我尝试类似的东西
uint8_t a, b;
stringstream data("124 67");
data >> a >> b;
Run Code Online (Sandbox Code Playgroud)
然后我最终a == '1'和b == '2'.我知道这是许多情况下的理想行为,但我想最终得到a == 124和b == 67.我目前的解决方法是将数据流式传输到ints,然后将它们复制到uint8_ts.
uint8_t a, b;
int a_, b_;
stringstream data("124 67");
data >> a_ >> b_;
a = a_;
b = b_;
Run Code Online (Sandbox Code Playgroud)
显然,这非常麻烦(而且效率稍低).是否有更简洁的方法uint8_t使用streams 读取数字(而不是字符)数据?
你不能.uint8_t和int8_t对于类型定义unsigned char和signed char分别.这些类型被iostreams视为字符类型,并且无法改变该行为.
你的第二个例子是你能做到这一点的唯一方法.
| 归档时间: |
|
| 查看次数: |
1207 次 |
| 最近记录: |