星期一, 8月 14, 2006

醜陋....= =+

有鑑於 C# 沒內建類似 cin 般以空白或換行為分隔的輸入
(只有輸入單一字元或一整行字串..)
便自行寫了個function:


public static int inputint(){
int nbr = 0;
do{
nbr = Console.Read();
}
while(!(nbr >= '0' && nbr <= '9'));
nbr -= '0';
int n = Console.Read();
while(n >= '0' && n <= '9'){
nbr = nbr * 10 + n - '0';
n = Console.Read();
}
return nbr;
}



唉....真醜|||
不知有沒有更好的方法!?

3 則留言:

Josh Ko 提到...

Try regular expressions :).

Celith 提到...

regular expression!?

Josh Ko 提到...

Google 給我的連結:《Scanf in C# using Regex》。

話說 Java 到了 1.5(最新正式版本)才涵括 Scanner class 於 standard library 之內,用法可參考《競速》一文的 Java code。

Ruby 則用 regex 實作了一個 scanf standard library,format string 語法與 C 相仿。