SOGO論壇
  登入   註冊   找回密碼
查看: 877|回覆: 2
列印 上一主題 下一主題

[程式設計] 有關整數範圍顯示問題 [複製連結]

大天使(二級)

破天荒娘

Rank: 5Rank: 5

狀態︰ 離線
跳轉到指定樓層
1
發表於 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
喜歡嗎?分享這篇文章給親朋好友︰
               感謝作者     

Rank: 3Rank: 3

狀態︰ 離線
2
發表於 2015-5-1 22:18:53 |只看該作者
我在 Linux 使用 GCC compiler 中驗證這段程式碼是無誤的. 可以正常顯示, 請確認 Dev C++ 對 long int 的最大範圍.

也可以先將輸入當成 string, 再用  atol() 將它轉成 long int.

Rank: 3Rank: 3

狀態︰ 離線
3
發表於 2015-5-1 22:23:44 |只看該作者
建議 #include <limits.h> 確認 LONG_MAX 在 Dev C++ 最大值到底是多少 .

#include <limits.h>

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

參考看看囉  !
請注意︰利用多帳號發表自問自答的業配文置入性行銷廣告者,將直接禁訪或刪除帳號及全部文章!
您需要登錄後才可以回覆 登入 | 註冊


本論壇為非營利自由討論平台,所有個人言論不代表本站立場。文章內容如有涉及侵權,請通知管理人員,將立即刪除相關文章資料。侵權申訴或移除要求:abuse@oursogo.com

GMT+8, 2024-5-5 00:24

© 2004-2024 SOGO論壇 OURSOGO.COM
回頂部