'\0'是空格转义符还是结束转义符呀

gjk11 2008-07-01 01:18:45
今天在网上搜了好多,有的说是空格符有的说是结束符,搞得我晕头转向。还有比如下面这段代码:

<%@ page contentType="text/html;charset=gb2312" import="java.io.*"%>
<html>
<head>
<title>向文件写入数据</title>
</head>
<body>
<center>
<%
try{
FileOutputStream fos=new FileOutputStream("c://Tomcat 5.5//webapps//ROOT//JSP//file5.dat");
DataOutputStream dos=new DataOutputStream(fos);
dos.writeInt(1234567890);
dos.writeLong(1234567890);
dos.writeShort(31234);
dos.writeFloat(112.234f);
dos.writeDouble(144.145);
dos.writeChars("你好北京");
}
catch(IOException e){
out.println("文件发生错误");
}
try{
FileInputStream fis=new FileInputStream("c://Tomcat 5.5//webapps//ROOT//JSP//file5.dat");
DataInputStream dis=new DataInputStream(fis);
out.println("整型:"+dis.readInt()+"<br>:");
out.println("长整型:"+dis.readLong()+"<br>:");
out.println("浮点型:"+dis.readFloat()+"<br>:");
out.println("双精度:"+dis.readDouble()+"<br>:");
out.println("整型:"+dis.readShort()+"<br>:");
char c;
while((c=dis.readChar())!='\0'){

out.println©;
}
}
catch(IOException ee)
{
out.println();
}
%>
</center>
</body>
</html>

中的“while((c=dis.readChar())!='\0')”这句怎么解释呀,'\0'如果是空格符,空格符的解释是不是说"存储的是一个空的字符串呀”。'\0'为什么不可以换成"null"或" "哪?
...全文
1749 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
yttl713 2010-08-02
  • 打赏
  • 举报
回复
是字符串结束标志,不是空格,
liming1983 2008-07-01
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 gjk11 的回复:]
"while... 这句话就是说,循环的获得字符串的每个字符直到结束"我怎么理解不了呀,"!="的意思不是"不为...,不是...."的意思吗。按照我的理解"while....“的意思不是说循环获得的字符串不结束吗?唉,实在理解不了呀,为什么我换成"32"和"0*20“空格符也可以编译哪。
[/Quote]
程序可以编译但不一定能够正常运行。\0标识一个文件流的结束。也可以理解为文件的结束。这个while的意思就是“一直读取文件中的内容,直到把文件读完为止”,而当你把这个改成了32后,它的意思就变成“一直读取文件中的内容,直到遇到一个空格为止”。
  • 打赏
  • 举报
回复
\0 表示结束符,比如C语言的数组中,最后有个默认的 \0 表示结束
\0 不是空格,' ' 才是空格
"" 就是“一个空的字符串”
sd5816690 2008-07-01
  • 打赏
  • 举报
回复
一句话:用流读取文件时,以 \0 结尾
gjk11 2008-07-01
  • 打赏
  • 举报
回复
"while... 这句话就是说,循环的获得字符串的每个字符直到结束"我怎么理解不了呀,"!="的意思不是"不为...,不是...."的意思吗。按照我的理解"while....“的意思不是说循环获得的字符串不结束吗?唉,实在理解不了呀,为什么我换成"32"和"0*20“空格符也可以编译哪。
reality 2008-07-01
  • 打赏
  • 举报
回复
结束符 是0x13
空格 是0x20
ascii 是这样写的
yushenbin 2008-07-01
  • 打赏
  • 举报
回复
\O代表了你的这个字符串的结束,while... 这句话就是说,循环的获得字符串的每个字符直到结束,这个貌似很好理解的啊
sd5816690 2008-07-01
  • 打赏
  • 举报
回复
while((c=dis.readChar())!='\0')等价于while((c=dis.readChar())!=0)”

\0 表示结束符,比如C语言的数组中,最后有个默认的 \0 表示结束
\0 不是空格,' ' 才是空格
"" 就是“一个空的字符串”

62,633

社区成员

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

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