【问题标题】:How to read or write 64-bit numbers in С?如何在С中读取或写入64位数字?
【发布时间】:2021-07-24 05:59:19
【问题描述】:

我可以用 %lld 在 C 中输入 64 位数字吗?

如果没有怎么办? 回答时请举例。

谢谢

【问题讨论】:

  • 你试过用%lld吗?你这样做的时候发生了什么?你遇到了什么问题?
  • 问题中说不要使用%lld。这就是我问的原因。

标签: c input 64-bit long-long


【解决方案1】:

如果您的编译器和标准库支持,您可以通过scanf() 使用%lld 说明符读取long long 的整数,但不能保证它是64 位的。 (long long 至少可以存储-9223372036854775807 (-(2**63 - 1)) 和+9223372036854775807 (2**63 - 1) 之间的数字(两者都包括),所以至少应该是64位)

如果您的环境支持,您可以使用来自inttypes.hint64_t 类型和"%" SCNd64 格式说明符。 int64_t 是一个正好是 64 位的有符号整数类型。 您可以将uint64_t 类型和"%" SCNu64 格式说明符用于无符号64 位整数。

例子:

#include <stdio.h>
#include <inttypes.h>

int main(void) {
    int64_t num;
    if (scanf("%" SCNd64, &num) != 1) { /* read 64-bit number */
        puts("read error");
        return 1;
    }
    printf("%" PRId64 "\n", num); /* print the number read */
    return 0;
}

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2020-12-20
  • 1970-01-01
  • 2019-03-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-05
  • 1970-01-01
相关资源
最近更新 更多