[問題] 如何判斷輸入超過int數值範圍?

看板C_and_CPP (C/C++)作者 (豆腐)時間12年前 (2013/11/28 23:51), 編輯推噓4(403)
留言7則, 5人參與, 最新討論串1/1
小弟新手請問一個小問題 就是如果規定輸入只能是在int的數值範圍內 2147483647 ~ -2147483648 應該要怎麼判斷user輸入超過那個範圍? ps.輸入在int 陣列下 感謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.135.0.209

11/29 00:04, , 1F
X用字串讀,比長度、大小?
11/29 00:04, 1F

11/29 12:18, , 2F
安啦不用比啦 用int輸入一定不會超過int範圍 |D
11/29 12:18, 2F

11/29 12:25, , 3F
try... catch.... 多利用例外處理.
11/29 12:25, 3F

11/29 12:56, , 4F
int n; cin >> n; if (cin.fail()) ... ?
11/29 12:56, 4F

11/30 15:38, , 5F
stdint.h 裡有你需要的上下限
11/30 15:38, 5F

11/30 20:02, , 6F
補充一下, 如果是使用 scanf(), atoi(), strtol() 等,
11/30 20:02, 6F

11/30 20:04, , 7F
有可能(不保證,需測試)在超出範圍時,會將errno設為ERANGE.
11/30 20:04, 7F
文章代碼(AID): #1IbsQ2Ry (C_and_CPP)
文章代碼(AID): #1IbsQ2Ry (C_and_CPP)