[问题] 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