现在的位置: 首页 > 综合 > 正文

fgetc, fgets, fputc, fputs, fread,fwrite, fseek, fprintf

2011年01月24日 ⁄ 综合 ⁄ 共 1873字 ⁄ 字号 评论关闭

格式: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()的返回值是输出的字符数,发生错误时返回一个负值.

抱歉!评论已关闭.