如何解决如何在С中读取或写入64位数字?
我可以用 %lld 在 C 中输入 64 位数字吗?
如果不是怎么办? 回答时请举例。
谢谢
解决方法
如果您的编译器和标准库支持,您可以通过 long long
读取带有 %lld
说明符的 scanf()
整数,但不保证是 64 位。 (long long
至少可以存储 -9223372036854775807
(-(2**63 - 1)
) 和 +9223372036854775807
(2**63 - 1
) 之间的数字(两者都包括在内),所以它至少应该是 64bit)
如果您的环境支持,您可以使用 int64_t
中的 "%" SCNd64
类型和 inttypes.h
格式说明符。 int64_t
是一个 64 位的有符号整数类型。
您可以对无符号 64 位整数使用 uint64_t
类型和 "%" SCNu64
格式说明符。
示例:
#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;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。