关于c中的fgetc()
这个函数的作用好像是读取一个字符,是不是当这个函数遇到'\0'时就会读取结束?会不会把'\0'也读进去?打错了,是读取一个字符寸...
这个函数的作用好像是读取一个字符,是不是当这个函数遇到'\0'时就会读取结束?会不会把'\0'也读进去?
打错了,是读取一个字符寸 展开
打错了,是读取一个字符寸 展开
展开全部
1.fgetc是用来从文件中读取内容的。它可不管读到的内容是什么东西。
2.文本文件中的字符串和c语言中的字符串概念不同。
文本文件中,不一定需要把'\0'这个c语言的字符串结束标志也存储进去(当然也可以这么做)。
3.fgetc这个函数从流中读取一个字符,然后返回。不管碰到了'\0'还是其他的字符都会返回。不知道你所谓的“结束”指的是什么。
4.一般来说,fgetc会返回读到的字符的整形值。但fgetc读到文件的结尾(不是字符串结尾)的时候,返回值是一个特殊值EOF。这个值和任何字符的值都不一样,不属于char类型。因此你会看到一些书上这么写:
int ch;//这里要用int类型,而不是char类型。因为EOF不是char
while((ch=fgetc(stdin))!=EOF){
//...
}
有点离题了。。。
总之,对于fgetc来说,文件中所有的数据(包括'\0')都是一样处理,除非读到了末尾,它就返回一个特殊值EOF。
2.文本文件中的字符串和c语言中的字符串概念不同。
文本文件中,不一定需要把'\0'这个c语言的字符串结束标志也存储进去(当然也可以这么做)。
3.fgetc这个函数从流中读取一个字符,然后返回。不管碰到了'\0'还是其他的字符都会返回。不知道你所谓的“结束”指的是什么。
4.一般来说,fgetc会返回读到的字符的整形值。但fgetc读到文件的结尾(不是字符串结尾)的时候,返回值是一个特殊值EOF。这个值和任何字符的值都不一样,不属于char类型。因此你会看到一些书上这么写:
int ch;//这里要用int类型,而不是char类型。因为EOF不是char
while((ch=fgetc(stdin))!=EOF){
//...
}
有点离题了。。。
总之,对于fgetc来说,文件中所有的数据(包括'\0')都是一样处理,除非读到了末尾,它就返回一个特殊值EOF。
展开全部
'\0'的值是0
自己判断一下不就完了
fgetc()应该最后读取的是EOF吧。。。。EOF代表结束
if(fgetc()!=EOF)
用EOF的时候需要include "stdio.h"
自己判断一下不就完了
fgetc()应该最后读取的是EOF吧。。。。EOF代表结束
if(fgetc()!=EOF)
用EOF的时候需要include "stdio.h"
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不会,'\0'并不属于字符串,只是一个标志.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询