[問題] InputStreamReader.read()練習

作者: kingofsdtw (不能閒下來!!)   2014-05-14 12:03:56
問題:
用while 讀取至換行字元(變數i指向換行字元),
for(j=0;j<i;j++)卻會印出換行字元
char[80] i
char[0] char[1] Char[2] Char[3] Char[4]
L O V E '\n'
code: https://www.dropbox.com/s/rci9tepjqg8mbt1/inputReader.rar
http://ideone.com/7GyCfL
/**Start**/
InputStreamReader s1 = new InputStreamReader(System.in);
while ((ch[i] = (char) s1.read()) != 10) {i++;}
/*output*/
for (int j = 0; j < i; j++)
System.out.print(" \"" + ch[j] + "\"");
System.out.println("不會自動換行");
error:https://www.dropbox.com/s/ei4ad7tuzt6d4ox/inputreader.jpg
嘗試:
1. Method:"while" check http://ideone.com/Ljzt1e
2. for(j=0;j0m< i-10m;j++) 結果正確,但不符合邏輯...
3. google InputStreamBuffer.read();用法
大大們感謝了!本魯菜比巴... 練習都遇到一堆Bug
作者: stimim (qqaa)   2014-05-14 12:07:00
網路上有很多貼程式碼的地方 codepad, gist, ideone然後,對你的問題,我建議你把每個字的ASCII碼印出來看看
作者: qrtt1 (有些事,有時候。。。)   2014-05-14 12:19:00
同感。要直接能在版上呈現足夠資料才能增加回復的意願。儘可能把問題濃縮到不需要放外部 link。在上一篇有些 link已經消失了。這樣發問的型式,我個人就不太有看的意願了因為問題可能過沒多久就斷頭了,無法在版上累積成知識。
作者: stimim (qqaa)   2014-05-14 12:34:00
不知道你有沒有注意到,在ideone上的輸出就是你預期的http://ideone.com/HJFIB2 < 把這個再自己的電腦上跑跑看很明顯的,多出來的鍵不是\n,而是某個ASCII碼為13的東西13 哪來的? => http://en.wikipedia.org/wiki/Newline

Links booklink

Contact Us: admin [ a t ] ucptt.com