c - 如何在С中读取或写入64位数字?
问题描述
我可以用 %lld 在 C 中输入 64 位数字吗?
如果没有怎么办?请在回答时举例说明。
谢谢
解决方案
如果您的编译器和标准库支持,您可以读取long long
with%lld
说明符的整数scanf()
,但不保证是 64 位的。(long long
至少可以存储-9223372036854775807
( -(2**63 - 1)
) 和+9223372036854775807
( 2**63 - 1
) 之间的数字(包括两者),所以它至少应该是 64 位)
如果您的环境支持,您可以使用int64_t
类型和"%" SCNd64
格式说明符。是一个正好是 64 位的有符号整数类型。您可以对无符号 64 位整数使用类型和格式说明符。inttypes.h
int64_t
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;
}
推荐阅读
- javascript - 当我在淘汰赛中从服务器加载数据时未定义的对象
- java - Persistence.createEntityManagerFactory("something") 返回 null
- angular - 角度 CDK 拖放:嵌套下拉列表
- css - 无论图像高度如何,如何固定 div 高度
- apache-flink - 构建 flink 1.10 遇到包未找到错误
- android - 带有 GridLayoutManager 的非对称 GridLayout / RecyclerView
- powerbi - 设置每 30 分钟增量刷新
- r - 创建字符十六进制的十进制值
- regex - 复选框以突出显示范围谷歌表格公式/谷歌表格
- litho - 使用 Litho 和 JSON 构建 UI