格式:int fgetc(FILE *stream);
意为从文件指针stream指向的文件中读取一个字符。
这个函数的返回值,是返回读取的一个字节。如果读到文件末尾返回EOF。
原型是char *fgets(char *s, int n, FILE *stream);
从流中读取n-1个字符,除非读完一行,参数s是来接收字符串,如果成功则返回s的指针,否则返回NULL。
fputc()
用 法: int fputc(int ch, FILE *stream);
返回值:如果写入成功则返回写入的字符,失败则返回EOF.
函数名: fputs
功 能: 送一个字符串到一个流中
用 法: int fputs(char *string, FILE *stream);
返回值:
On success, a non-negative value is returned.
fputs,写入成功返回值为非负值,非负即正数或0
正数或0 由你的编译器决定,正数值大小的含义由编译器决定。
On error, the function returns EOF.
写入失败返回值为EOF.
fread
功 能: 从一个流中读数据
函数原型: size_t fread( void *buffer, size_t size, size_t count, FILE *stream );
参 数:
1.用于接收数据的地址(指针)(buffer)
2.单个元素的大小(size) :单位是字节而不是位,例如读取一个int型in数据数就是4个字节
3.元素个数(count)
4.提供数据的文件指针(stream)
返回值:成功读取的元素个数
eg: fread(buf, strlen(msg), 1,stream); 注意不用+1
printf("%s\n", buf);
fwrite
size_t fwrite(const void*buffer,size_t size,size_t count,FILE*stream);
注意:这个函数以二进制形式对文件进行操作,不局限于文本文件
返回值:返回实际写入的数据块数目
(1)buffer:是一个指针,对fwrite来说,是要输出数据的地址。
(2)size:要写入内容的单字节数;
(3)count:要进行写入size字节的数据项的个数; 2并非表示写出2个buffer到文件stream
(4)stream:目标文件指针。
(5)返回实际写入的数据项个数count
eg. fwrite(string, strlen(string), 1, stream); (char string[] = "This is a test";) 不用加1
fwrite(&s, sizeof(s), 1, stream); /* write struct s to file */
int fseek(FILE *stream, long offset, int fromwhere);
SEEK_SET: 文件开头
SEEK_CUR: 当前位置
SEEK_END: 文件结尾
其中SEEK_SET,SEEK_CUR和SEEK_END依次为0,1和2.
简言之:
fseek(fp,100L,0);把文件内部指针移动到离文件开头100字节处;
fseek(fp,100L,1);把文件内部指针移动到离文件当前位置100字节处;
fseek(fp,-100L,2);把文件内部指针退回到离文件结尾100字节处。
函数设置文件指针stream的位置。如果执行成功,stream将指向以fromwhere(偏移起始位置:文件头0,当前位置1,文件尾2)为基准,偏移offset(指针偏移量)个字节的位置。如果执行失败(比如offset超过文件自身大小),则不改变stream指向的位置。
成功,返回0,否则返回其他值。
函数名: fscanf
功 能: 从一个流中执行格式化输入
用 法: int fscanf(FILE *stream, char *format,[argument...]);
int fscanf(文件指针,格式字符串,输入列表);
返回值:整型,数值等于[argument...]的个数
eg: int i; fscanf(stdin, %d, &i);
fprintf
int fprintf( FILE *stream, const char *format, ... );
fprintf()函数根据指定的format(格式)(格式)发送信息(参数)到由stream(流)指定的文件.
fprintf()只能和printf()一样工作. fprintf()的返回值是输出的字符数,发生错误时返回一个负值.