[問題] 判斷非字元

看板C_and_CPP (C/C++)作者 (居家男)時間16年前 (2009/07/14 22:56), 編輯推噓2(2015)
留言17則, 4人參與, 最新討論串1/1
問題1: 最近在暑修c++.... 老師出了一個作業要我們輸入電阻上的顏色代碼(字元) ,判讀出正確的電阻值。 但是我遇到一個難題...就是,如果我輸入的是非字元 ,程式就會跑出很奇怪的值,那麼我要怎麼判斷出輸入的值是非字元呢? 問題2: 為甚麼用int main()開頭的主程式都要return 0; 不能return 5; 其他數字之類的 我有用過其他數字輸入,好像也沒有影響結果. 有請版友指教 感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.105.148.10

07/14 22:59, , 1F
1. #include <ctypes.h> use api isalpnum(); or
07/14 22:59, 1F

07/14 23:00, , 2F
use range of asciis. ( 0xaa~ 0xbb are chracters )
07/14 23:00, 2F

07/14 23:02, , 3F
2.in <stdlib.h> #define EXIT_FAILURE 1 / EXIT_SUCCESS 0
07/14 23:02, 3F

07/14 23:33, , 4F
但是為甚麼2.用其他數字會不影響呢?
07/14 23:33, 4F

07/14 23:49, , 5F
main的return code通常被用來與其他程式或者OS溝通用的,
07/14 23:49, 5F

07/14 23:49, , 6F
有些OS API或者batch指令可以取得一個.exe執行後main的
07/14 23:49, 6F

07/14 23:50, , 7F
比如說我寫的程式要執行你這隻程式, 在你的程式結束後
07/14 23:50, 7F

07/14 23:50, , 8F
我可以利用你程式的傳回值得知你的程式這次執行是否有問題
07/14 23:50, 8F

07/14 23:50, , 9F
return code, 而習慣上以及stdlib.h(提供了exit函數)用
07/14 23:50, 9F

07/14 23:50, , 10F
只要有講好 return 值的規範, 那我就能掌握可能發生的問題
07/14 23:50, 10F

07/14 23:51, , 11F
啊 不小心同時推文了 >/////<
07/14 23:51, 11F

07/14 23:51, , 12F
0代表程式正常結束, 非0代表不正常(EXIT_FAILURE是1),
07/14 23:51, 12F

07/14 23:51, , 13F
事實上如果你不特別預期要處理return code, 回傳什麼都
07/14 23:51, 13F

07/14 23:52, , 14F
(非0)沒什麼差別; 有用VC的話也可以在output window裡
07/14 23:52, 14F

07/14 23:53, , 15F
看到你自己的程式的return code; 程式掛掉有時也可以看
07/14 23:53, 15F

07/14 23:53, , 16F
到, 不過有時可能要自己解回16進位去查NTSTATUS就是了.
07/14 23:53, 16F

07/19 23:01, , 17F
感謝以上版友的指導 雖然還是不太會XD
07/19 23:01, 17F
文章代碼(AID): #1AN9ohvr (C_and_CPP)
文章代碼(AID): #1AN9ohvr (C_and_CPP)