日期:2014-05-20  浏览次数:20610 次

一个IO的问题,求助
import java.io.*;
class test{
public static void main(String args[]) throws IOException {
int c = System.in.read();
int d = 15;
System.out.println(d);
System.out.println(c);
}
}
这段代码运行之后怎么d的打印时正确的,而c的打印的是它的ASCII码?


------解决方案--------------------
是的,System.in是系统的输入流,read读取一个字符,并且返回其ASCII码
------解决方案--------------------
int 和 ACSII 明显是两个概念


------解决方案--------------------
这个是返回你输入在ASC码中对应的值。
改成 char ch= (char)System.in.read();
System.out.println(ch);可以输出字符串
------解决方案--------------------
ascii码就是一个数值型数据啊
------解决方案--------------------
System.in.read()是从输入流中一个字节一个字节读的,这个字节用int表示的原因是,这个int值对应ASCII码表中那个字符串所对应的编码,你用char强转就可以ASCII码表中根据这个int值找到对应的值
------解决方案--------------------
ASCII不就是一个收据吗?用前面的数字来计算的啊
------解决方案--------------------
探讨

是的,System.in是系统的输入流,read读取一个字符,并且返回其ASCII码

------解决方案--------------------
int c = System.in.read();
这行代码只是读取你输入的第一个字符的ASCII码。如:你输入的是数字15,读取到的只是1所对应的ASCII码49。