【问题标题】:Mbed wrong long int parsing [duplicate]Mbed错误的long int解析[重复]
【发布时间】:2021-05-05 05:59:19
【问题描述】:
    #include <stdio.h>

    int main()
    {
        const char* s = "Number: 420604953084";
        long number;
        sscanf(s, "Number: %ld", &number);
        printf("Result: %ld", number);

        return 0;
    }

此代码在桌面上使用 c++11 编译(或,例如 here)正确返回:

Result: 420604953084

但是用ARM Mbed 6.6编译的结果是:

(#include <mbed.h>)
...
Result: -301941924

有人知道吗?不幸的是,这些东西在 Mbed 中根本没有记录。

【问题讨论】:

    标签: c++ mbed


    【解决方案1】:

    如果你的 long 类型在你的编译器上是 4 字节。我认为get和error是合理的。

    请尝试unsigned long long和格式代码"lld"

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-04-11
      • 2011-09-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-25
      • 2015-11-05
      相关资源
      最近更新 更多