【问题标题】:How to read numeric data as uint8_t [duplicate]如何将数字数据读取为 uint8_t [重复]
【发布时间】:2014-10-06 06:50:20
【问题描述】:

我在istream 中有一些人类可读的数字数据。值范围为 0-255,我想将它们存储在 uint8_t 中。不幸的是,如果我尝试类似

uint8_t a, b;
stringstream data("124 67");
data >> a >> b;

然后我最终得到a == '1'b == '2'。我知道这是在许多情况下所需的行为,但我想以a == 124b == 67 结束。我目前的解决方法是将数据流式传输到ints,然后将它们复制到uint8_ts。

uint8_t a, b;
int a_, b_;
stringstream data("124 67");
data >> a_ >> b_;
a = a_;
b = b_;

显然,这变得非常麻烦(而且效率略低)。有没有使用streams 读取数字(而不是字符)uint8_t 数据的更简洁的方法?

【问题讨论】:

    标签: c++ iostream


    【解决方案1】:

    你不能。 uint8_tint8_t 分别是 unsigned charsigned char 的类型定义。这些类型被 iostreams 视为字符类型,无法更改这种行为。

    您的第二个示例确实是您可以做到这一点的唯一方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-04
      • 1970-01-01
      • 1970-01-01
      • 2017-03-27
      • 2018-09-15
      • 1970-01-01
      相关资源
      最近更新 更多