'\0','\n',EOF的区别

来源:互联网 发布:淘宝分销平台骗局 编辑:程序博客网 时间:2024/04/28 07:12

‘\0’
1.字符串结束符,字符串的结尾标志,存储在字符串的结尾。
2.在ASCII字符集中对应空字符NULL,数值为0。
3.在使用过程中要为其分配内存空间,但不计入字符串长度。
4.用scanf(“%s”,s);和gets(s)输入字符串后系统会自动在字符串的末尾加上一个’\0’。(所以用puts函数输出字符串时会在字符串后停止)

比如:char cha[5]表示可以放4个字符的字符串,由于c/c++中规定字符串的结尾标志为’\0’,它虽然不计入串长,但要占内存空间,而一个汉字一般用两个字节表示,且c/c++中如一个数组cha[5],有5个变量,分别是 cha[0] , cha[1] , cha[2] , cha[3] , cha[4] , 所以cha[5]可以放4个字母的字符串(数组的长度必须比字符串的元素个数多1,用以存放字符串结束标志’\0’)或者放2个汉字(1个汉字占2个字节,1个字母占一个字节),cha[5]占5个字节的内存空间。

‘\n’(new line)
1.换行(LF) ,将当前位置移到下一行开头。
2.ASCII码值(十进制)是10.

EOF(End Of File)
1.表示文件结束符(end of file)。
2.在while循环中以EOF作为文件结束标志,这种以EOF作为文件结束标志的文件,必须是文本文件。
3.EOF 的值通常为 -1,在文本文件中,数据都是以字符的ASCII代码值的形式存放。ASCII代码值的范围是0~127,不可能出现-1,因此可以用EOF作为文件结束标志。
4.C语言中,EOF常被作为文件结束的标志。还有很多文件处理函数处错误后的返回值也是EOF,因此常被用来判断调用一个函数是否成功。
5.C语言中,EOF即文档的结尾.但是,当你写一个小程序,并以EOF作为判断条件时,就无法输入文档的结尾了,只能人工输入一个,这个人工输入的文档结尾就是Ctrl+Z.(Ctrl+Z的值是-1,可以尝试将EOF替换成-1)
6.示例:
while(scanf(“%d”,&n)!=EOF);//注意:scanf函数有返回值,详见《scanf函数》。
while(getchar()!=EOF);//getchar函数也有返回值,格式错误返回-1.

资料来源:《EOF》——百度百科;《\0》——百度百科;

原创粉丝点击