SOGO論壇

標題: 有關整數範圍顯示問題 [列印本頁]

作者: Shecil    時間: 2015-4-5 23:01:27     標題: 有關整數範圍顯示問題

本帖最後由 Shecil 於 2015-4-5 23:06 編輯

各位大大好:
我使用Dev c++寫了一段C語言程式碼:

主程式:
          long  int A, B;

          while(scanf("%ld  %ld", &A, &B) != EOF){

                 printf("A = %ld B = %ld\n",A,B);

          }
編譯完成後我輸入: 1234 123456789012345
但是顯現出來的B值並不是123456789012345,A之值是正確的,難道是我輸入的整數範圍太大?(好吧,或許)
所以B就永遠無法顯示123456789012345?
我想知道B要如何才能夠正確顯示:123456789012345
作者: dovahkiin    時間: 2015-5-1 22:18:53

我在 Linux 使用 GCC compiler 中驗證這段程式碼是無誤的. 可以正常顯示, 請確認 Dev C++ 對 long int 的最大範圍.

也可以先將輸入當成 string, 再用  atol() 將它轉成 long int.
作者: dovahkiin    時間: 2015-5-1 22:23:44

建議 #include <limits.h> 確認 LONG_MAX 在 Dev C++ 最大值到底是多少 .

#include <limits.h>

printf("LONG_MAX = %ld\n", LONG_MAX);

參考看看囉  !





歡迎光臨 SOGO論壇 (https://oursogo.com/) Powered by OURSOGO.COM