可能重复的问题:
如何使用printf打印无符号长长整型?
#include <cstdio>
int main ()
{
unsigned long long int n;
scanf("%llu",&n);
printf("n: %llu\n",n);
n /= 3;
printf("n/3: %llu\n",n);
return 0;
}
无论我输入什么内容,都会得到非常奇怪的输出,例如:
n: 1
n/3: 2863311531
或者
n: 2
n/3: 2863311531
或者
n: 1000
n/3: 2863311864
为什么会出现这种情况?我应该如何正确处理?
(使用g++ 3.4.2和Win XP)
#include <cstdio>
表示 C++,但unsigned long long int
和%llu
表示 C。你想使用哪个? - CB Bailey#include <cstdio>
与using namespace std;
结合使用也可以。感谢您的回答! - drevv