内怪异的结果这是我的代码:获得通过使用%I64u的MinGW-W64
注意:\ N里面的scanf是我的方式来防止换行符问题。这不是最好的解决方案,但我使用它太多,目前它成为我的习惯。 :-)
...
int main()
{
unsigned long long int input[2], calc_square;
while(scanf("\n%I64u %I64u", input[0], input[1]) == 2)
{
printf("%I64u %I64u\n", input[0], input[1]);
...
我期望的输入和程序的结果是:
输入:而不是打印回到89
89 89
对于输出,它显示此输出:
I64u I64u
我使用g ++(GCC)4.9.1从MSYS2包。注意到g ++,因为我的代码的一部分目前正在使用C++ STL。
编辑:我使用标准%llu
代替%I64u
改变了我的代码,这是我期望的输入和程序结果:
输入
89 89
对于输出,它是一种奇怪的结果:
25769968512 2337536
从'printf'示例中,应该清楚g ++不支持'I64'修饰符。 – 2014-10-22 02:46:38
[Printf long long int in C with GCC?](http://stackoverflow.com/questions/13590735/printf-long-long-int-in-c-with-gcc) – 2014-10-22 02:48:17
@RaymondChen,我已经看看这个,但是我对I64u的输出感到困惑,因此我创建了这个新问题。谢谢你为我清除这件事。 :-) – 2014-10-22 02:50:31