函数接口
fgetc(a):从流中读取一个字符----调用一次读取向后读取一次(因为被操作数为流)
流被读完后会产生错误----用来作为读取结束的条件
fgetc/fputc与getchar/putchar的区别-------没有区别
fputs(a,b):将a打印到b内,若b为stdout,则打入终端
使用示例:将1.txt内容写入2.txt中
#include<stdio.h>int main(void){ char c;FILE *a=NULL;a=fopen("1.txt","r");FILE *b=NULL;b=fopen("2.txt","w");while(1){c=fgetc(a);fputc(c,b);if(c==EOF){break;}}}
fputs(const *s,FILE *stream):fputs(a,b)将a中的值写入b中
fgets(const *s,int size,FILE *stream):fgets(a,b,c)从流c中读取(b-1)//留值存\0//个大小的值存到a,若读到\n就直接停止,不再读取,并在结尾加上\0.
---------------------------------以上函数只能操作ascii码文件
如何刷新偏移量-----关闭文件后再开启。
puts与fputs的区别:puts会在字符串末尾多打印\n,fputs不会多打印\n。
gets与fgets的区别:gets会去掉\n,fgets不会去掉\n,gets没有给定读取个数,容易越界,fgets有范围,不会越界。
二进制文件的操作
也能操作ascii码文件
fwrite(const void *a,size_t b,size_t c,FILE *d):
功能:向d中写入c个字符,每个b个字节大小,从a中取
返回值:成功返回写入的字符个数
fread(const void *a,size_t b,size_t c,FILE *d);
功能:读取d中的c个字符,每个字符b个字节大小,存到a中
fscanf(a,"字符串",&字符型)
功能:将格式化的字符串输入到文件a中
fprintf(a,"字符串",字符型)
功能:将格式化的字符串输出到文件a中。
流的定位
ftell(a)
功能:获得流的偏移量
rewind (a)
功能:将流的偏移量重新回到开头
fseek(a,b,whence)
功能:设置流的偏移量
b>0----向后偏移
b<0----向前偏移
whence:
SEEK—SET开头,b=0;
SEEK—CUR当前位置
SEEK__END结尾,b=0;