在C语言中,fgetc()
和fputc()
都是用于文件操作的函数,其均在<stdio.h>
头文件中。
fgetc()函数
fgetc()
函数可从文件中每次读取一个字符,其调用方法为
int fgetc(FILE *fp); |
fgetc()
函数读取成功时,返回读取到的字符;读取到文件末尾或读取失败时返回EOF
。EOF
是<stdio.h>
头文件中定义的一个宏,它的值是负数,一般为-1(EOF
不绝对为-1,也可以是其他负数,这取决于编译器),fgetc()
的返回值类型之所以为int
,就是为了容纳这个负数(char
不能是负数)。
举个栗子:
|
在文件内部有一个位置指针,用来指向当前读写到的位置,也就是读写到第几个字节。在文件打开时,该指针总是指向文件的第一个字节。使用fgetc()
函数后,该指针会向后移动一个字节,所以可以连续多次使用fgetc()
函数读取多个字符。位置指针仅仅是一个标志,表示文件读写到的位置,也就是读写到第几个字节,它不表示地址。文件每读写一次,位置指针就会移动一次,它不需要在程序中定义和赋值,而是由系统自动设置,对用户是隐藏的。
对EOF的说明
EOF
本来表示文件末尾,意味着读取结束,但是很多函数在读取错误时也返回EOF
,那么需要使用<stdio.h>
头文件中的feof()
和ferror()
函数来判断文件是读取完毕还是读取错误。
feof()
函数用来判断文件内部指针是否指向文件末尾,其调用方法为
int feof(FILE *fp); |
当指向文件末尾时,返回非零值,否则返回零。
ferror()
函数用来判断文件操作是否错误,其调用方法为
int ferror(FILE *fp); |
当文件操作出现错误时,返回非零值,否则返回零。
fputc()函数
fputc()
函数可向文件中每次写入一个字符,其调用方法为
int fputc(int ch,FILE *fp); //ch表示写入的字符 |
fputc
函数写入成功时,返回写入的字符;写入失败时返回EOF
,返回值类型为int
也是为了容纳这个负数。
举个栗子
|
被写入的文件可以使用写、读写、追加三种方式打开,使用写或读写方式打开一个已存在的文件时将清除原有的文件内容,如需保留原有文件内容,就必须以追加方式打开文件。不管以何种方式打开,被写入的文件若不存在时,则新建文件。
如有错误,请在评论区留言,非常感谢(ノ>ω<)ノ。
本文内容整理自