Topic: system.in.read()能够读入INT型的数据吗 |
Print this page |
1.system.in.read()能够读入INT型的数据吗 | Copy to clipboard |
Posted by: dickran Posted on: 2006-03-15 20:25 小弟新学JAVA 最近仿造书上遍了一个简易程序 原程序是从键盘读入一个字符并显示 import java.io.*; public class A{ public static void main (String args[]){ x=(char)System.in.read(); System.out.println(x); } } 输入“c” 显示“c”,正常 小弟将其改为 import java.io.*; public class A{ public static void main (String args[]){ x=(int)System.in.read(); System.out.println(x); } } 为什么从键盘输入数字49 而屏幕输出显示的却是另外的数字1 |
2.Re:system.in.read()能够读入INT型的数据吗 [Re: dickran] | Copy to clipboard |
Posted by: piaoling Posted on: 2006-03-15 20:31 你应该参考一下API |
3.Re:system.in.read()能够读入INT型的数据吗 [Re: dickran] | Copy to clipboard |
Posted by: gggcel_5200 Posted on: 2006-03-15 22:11 我也是新手。看的还没有你远呢。你说错了大家不要笑我。 把 x 也定义为 int 是不是就可以了啊? 高手给我们说明一下。。。。。 |
4.Re:system.in.read()能够读入INT型的数据吗 [Re: dickran] | Copy to clipboard |
Posted by: laies Posted on: 2006-03-15 22:58 这段代码能运行嘛? 你们看的是哪本书? 怎么使用public static void main (String args[]) 都是这么规范. |
5.Re:system.in.read()能够读入INT型的数据吗 [Re: dickran] | Copy to clipboard |
Posted by: 轻薄的假象 Posted on: 2006-03-15 23:52 对C不是特别熟悉的朋友,总是犯类似比较常识性的错误 你输入49,那么print出一个1,很容易就可以明白,49是1的ASC码 其实可以这样理解,System.in.read()读到了一个int(即使你输入的是一个char,他还是优先转换为这个char的ASC码),本来就是一个int型的返回值再被强制转换一次毫无意义,他如果再赋值给一个char的时候,很不幸,他会从一个int的值变成一个char型的ASC码,如果赋值给一个int型的变量,就是2种结果了 |
Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1 客服电话 18559299278 客服信箱 714923@qq.com 客服QQ 714923 |