c语言fgetc函数 c++fgets函数的用法

fgetc() 与getc()有什么区别呢?

fgetc():

成都创新互联公司主要从事网站设计、成都网站设计、网页设计、企业做网站、公司建网站等业务。立足成都服务肃北,十多年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18982081108

定义函数

int fgetc(FILE * stream);

函数说明

fgetc()从参数stream所指的文件中读取一个字符。若读到文件尾而无数据时便返回EOF。

返回值

fgetc()会返回读取到的字符,若返回EOF则表示到了文件尾。

getc():

功 能: 从流中取字符

用 法: int getc(FILE *stream);

注意: 此函数被ISO C声明为一个宏,所以在用时不能将其做为函数指针传(有一些编译器将其以函数形式也给另说)。它的原型如下 #define getc(_stream) (--(_stream)-_cnt = 0?0xff *(_stream)-_ptr++ : _filbuf(_stream))

补充: 在C语言中,用函数getc(fgetc)从文件读取字符。getc、fgetc用法相同。 getc的调用形式:ch=getc(fp);此处的fp是文件指针;函数功能是从文件指针指向的文件读入一个字符,并把它作为函数值返回给字符型变量ch。

c语言fgetc函数疑问

好像没问题啊,你文件路径不对吧

main()

{

FILE *fp;

int ch;

if ((fp = fopen("d:\\new.txt", "r")) == NULL)

{

printf("Error,file not exist!");

return;

}

while ((ch = fgetc(fp))0)

printf("%c", ch);

fclose(fp);

}

关于c中的fgetc()

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。

C语言 对于文本文件,fgetc函数读入最后一个字符时,返回值是EOF

fgetc()返回值: 成功时为作为 unsigned char 获得并转换为 int 的字符,失败时为 EOF 。

最后一个字符,如果读入成功了就返回这个“字符”。

然后继续往下读(此时已经都读完了,后面没有了),读取失败 返回的才是EOF,设置 stream 上的文件尾指示器(feof()),若是其他(非读到文件尾)原因导致失败也是返回EOF(但此时因其他错误导致失败)则设置 stream 上的错误指示器(ferror() )。

想要得到“EOF”需要在正好读完全文的条件下 再进行任意一次读取,此时读取失败才会有“EOF”。

C语言fgetc

ch=fgetc(p)//p为指向文件的指针,ch为字符型变量名

通俗的的讲,函数是从文件中读出一个字符,将字符的值赋值给指定变量;

而具体到是否读出的是文件的第一个字符,是要考虑此时的文件指针P指向文件的状态,

如果文件指针p,在打开文件后没有进行过任何移位,应该读出的是文件的第一个字符;


网站名称:c语言fgetc函数 c++fgets函数的用法
网站路径:http://myzitong.com/article/hjcpoj.html