我想到一個利用ASCII的方法
不過會有範圍的限制
char N;
if ( N<47 || N > 64 )
printf("plz enter number");
(若輸入不是0~9的數字 反應錯誤訊息)
再把所得的數減去48即可得ASCII對應INT的真值
不過有範圍限制吧
請高手提供其他方法
如宣告
int N; 或 long N;時
要怎麼處理?
因為N 我還要拿來做別的運算
必須至少65535以上的通用性
--
※ Origin: 楓橋驛站<bbs.cs.nthu.edu.tw> ◆ From: tknet.tku.edu.tw
判斷是否為數字可以用 ctype.h 中的 isdigit() 巨集來作啊...
而且您說得限制其實一點也不是問題, 你可以把 char 變數的值減掉 48後
丟到 int 或 long變數中再做運算不就可了?
--
* Origin: ★ 交通大學資訊科學系 BBS ★ <bbs.cis.nctu.edu.tw: 140.113.23.3>
可是在char變數減掉48之前
就要先判斷值是否 N<47 || N>xx來判聽其是否為字元啦
若為字元 接下來減去48又有什麼意義?
至於isdigit() 好像只能判斷一個位數吧
我查help沒有也沒有詳細範例說
請注意需要65535以上的通用性
那你乾脆就用 scanf 去抓不就可了.... 幹嘛那麼麻煩呢?
不不....用scanf才需要考慮這個問題
--
※ Origin: 楓橋驛站<bbs.cs.nthu.edu.tw> ◆ From: cave4.ck.tp.edu.tw