关于C语言 的__int64 的:如何输出从键盘读入的__int64 变量 问题

2025-02-27 03:58:58
推荐回答(2个)
回答1:

输入没有问题,问题在输出
printf函数对于输出参数的是按照内存结构解释的,而不是逻辑上的,
那么
printf("%d \n%I64d \n%I64u",a,a,a); 这个操作会把3个参数当作int , __int64,__int64 解释,这样就把第一个a的8个字节的前4个字节当作一个int,然后把第一个a的后四个字节和下一个a的前4个字节当作一个__int64, 第三个参数也一样错位
对第一个a做个强制转换就行了:
printf("%d \n%I64d \n%I64u",(int)a,a,a);

回答2:

请问你的“%I64d”中的‘l’是小写的L还是大写的i,正确的应该是大写的i,你再试试