【7】、文件的读写
字符I/O:fputc与fgetc
fputc
函数原型:
int fputc(int c, FILE *fp)
功能:
把一字节代码c写入fp指向的文件中
返回值:
正常,返回c;出错,为EOF(-1)
fgetc
函数原型:
int fgetc(FILE *fp)
功能:
从fp指向的文件中读取一字节代码
返回值:
正常,返回读到的代码值;读到文件尾或出错,为EOF(-1)
feof
函数原型:
BOOL feof(FILE *fp)
功能:
判断文件是否结束
返值:
文件结束,返回真(非0);文件未结束,返回0
【注意】:
putc(ch,fp)与fputc(ch,fp)效果一致,但是putc可以作为宏替换,速度更快
getc(fp)与fgetc(fp)效果一致,但是getc可以作为宏替换,速度更快
而之前的
putchar(c)则是fputc(c,stdout)
getchar( )则是fgetc(stdin)
【8】、字符串I/O: fgets与fputs
函数原型:
char *fgets(char *s,int n,FILE *fp)
int fputs(char *s,FILE *fp)
功能:
从fp指向的文件读/写一个字符串
返回值:
fgets正常时返回读取字符串的首地址;出错或文件尾,返回NULL
fputs正常时返回写入的最后一个字符;出错为EOF
【9】、数据块I/O:fread与fwrite
函数原型:
size_t fread (void *buffer,size_t size, size_t count, FILE *fp)
size_t fwrite(void *buffer,size_t size, size_t count, FILE *fp)
功能:
读/写数据块
返值:
成功,返回读/写的块数;出错或文件尾,返回0
说明:
buffer: 指向要输入/输出数据块的首地址的指针
size: 读/写的数据块的大小(字节数)
count: 要读/写的数据块的个数
fp: 要读/写的文件指针
fread与fwrite 一般用于二进制文件的输入/输出
【10】、注意:
w的方式如果遇到0A(换行),则会加上个0D(回车),
所以读写二进制文件都要使用wb,而不是w
eg:
用char ch1[100]=“abcdefg\n”;写入文件试验一下效果
在读取二进制文件的时候永远使用wb,rb而不用w,r
网友评论