请问为什么会出错?

linsky 2003-07-08 11:23:54
class java_in{
static int i;
public static void main(String args[]){
i=System.in.read(); <<---这句报出错
System.out.println("I="+i);
}
}
...全文
40 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
SailorK 2003-07-10
  • 打赏
  • 举报
回复
System.in.read();
读入的是int类型的,对应的是ASCII表,查查每本程序设计的书后面都有的
楼主不信可以把我一楼的程序运行,对应着ASCII表看看
SailorK 2003-07-10
  • 打赏
  • 举报
回复
我综合了楼上各位兄弟的建议
修改程序如下:(可满足楼主的要求)

bafce(bafce)
painAndhappy((痛并快乐着))
两位兄弟的建议不错,有收获

import java.io.*;

class java_in{
static int i;


public static void main(String args[]){
boolean ok=false;
String str="";

while(!ok)
{
try
{
i=System.in.read();
if((char)i=='\n')
ok=true;
else
str+=(char)i;
}
catch(IOException e)
{
ok=true;
}
}
System.out.println("I="+str);
}
}
zzgl 2003-07-10
  • 打赏
  • 举报
回复
i=System.in.read();
有什么作用?
musicfree_uibe 2003-07-10
  • 打赏
  • 举报
回复
看似很简单的问题,没想到真的很受启发!
cd1860 2003-07-10
  • 打赏
  • 举报
回复
没问题只要导入了java.io.*,然后再捕获IOException异常就可,不过一次
只能读到一个字符(如果输入多个其它的作废),而且返回的是相应的acsii
值。
SailorK 2003-07-09
  • 打赏
  • 举报
回复
import java.io.*; //需要的

class java_in{
static int i;
public static void main(String args[]){

try
{
i=System.in.read();
System.out.println("I="+i); // <<---这句报不会出错了
}
catch(IOException e) //catch 在io中很重要的
{}
}
}
bafce 2003-07-09
  • 打赏
  • 举报
回复
再改一下,把'/'改成'\'
bafce 2003-07-09
  • 打赏
  • 举报
回复
不好意思,有错了~!应该是~!

while(!ok)
{
try
{
n=System.in.read();
if(n<0||(char)n=='/n')
ok=true;
else
str+=(char)n;
}catch(IOException)
{
ok=true;
}
}
bafce 2003-07-09
  • 打赏
  • 举报
回复
这个方法一次只能从系统平台上读取一个字符,你可以用循环来读取
boolean ok=false;
String str="";
int n;

try
{
while(!ok)
{
n=System.in.read();
if(n<0||(char)n=='/n')
ok=true;
else
str+=(char)n;
}catch(IOException)
{
ok=true;
}
}
linsky 2003-07-09
  • 打赏
  • 举报
回复
还是不行呀,如果输入超过一位数的数话只能显示最高位的数字,其它的还是显不出来.
painAndhappy 2003-07-09
  • 打赏
  • 举报
回复

System.out.println("I="+i);
改成
System.out.println("I="+(char)i);
popularboy1wbr 2003-07-09
  • 打赏
  • 举报
回复
你最好在main中建一个java_in的对象a,然后
a.i = system.in.read();

试试看。
火云洞红孩儿 2003-07-09
  • 打赏
  • 举报
回复
学习。
topsonstar 2003-07-09
  • 打赏
  • 举报
回复
同意SailorK(soul of the sea)
takecare 2003-07-09
  • 打赏
  • 举报
回复
class java_in
应该是:
public class java_in
haode 2003-07-09
  • 打赏
  • 举报
回复
楼上的说得对

你调用io包下的方法但是没有引入io包

而且在使用read方法的时候,需要捕捉抛出的异常
linsky 2003-07-09
  • 打赏
  • 举报
回复
回SailorK(soul of the sea):
我照你说的重写了遍现是不报错了,可输入和输出的数字不一样呀.输入0他给我输出40几.何解?谢谢

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧