內怪異的結果這是我的代碼:獲得通過使用%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