相关函数位于<stdio.h>中
缓冲区/流
文件和程序之间有输入/输出缓冲区,缓冲区是一个内存空间
文件位置指针
读数据从文件位置指针开始读,写数据从文件指针位置开始覆写
打开文件-fopen()
FILE *fopen(const char *filename, const char *mode);
返回一个FILE指针,可将此指针存入一个变量,之后通过该指针操作此时打开的文件
mode表示打开文件的模式,常用mode:(还有很多)
mode | 含义 |
"r" |
读取一个文本文件,不写 |
"w" |
创建一个用于写入的文本文件,若文件存在则会清空文件 |
关闭文件-fclose()
int fclose( FILE *fp );
当作“关闭文件”使用。关闭文件流,成功则返回0,否则返回EOF。
写字符-fputc()
int fputc (int c, File *fp)
将字符c输出到文件fp中。英文字符一般是ASCII码,用整数表示,也可当作整数计算。中文字符是多字节字符,这种函数一般不能直接用,要做点其他事才行。
写成功,返回输出的字符,否则返回EOF
读字符-fgetc()
int fgetc(FILE *stream);
从文件stream读取一个字符。
读成功,返回读的字符,否则返回EOF。
读文件-fread()
size_t fread( void *buffer, size_t size, size_t count, FILE *stream );
buffer:读入数据的存放地址,一般用一个数组存储
size:一次读的字节数
count:要读几次。总读取的字节数为size*count
stream:文件指针
写文件-fwrite()
size_t fwrite(const void *buffer, size_t size, size_t count, FILE *stream);
改变文件的位置指针-fseek()
int fseek(FILE *stream, long offset, int fromwhere);
fseek()执行成功时返回0,否则返回非0值,并设置error的值,可以用perror()函数输出错误。
stream:文件指针
offset:位移量
origin:位移起点
- 文件开头: SEEK_SET 0
- 文件当前位置:SEEK_CUR 1
- 文件末尾: SEEK_END 2
返回文件位置指针的位置-ftell()
long ftell(FILE *stream);
返回文件位置指针当前位置相对于文件首的偏移字节数,失败则返回-1
格式化读文件-fscanf()
int fscanf(FILE *stream, char *format[,argument...]);
这函数类似于scanf,使用时只是在形参中加了个文件指针。把文件中的内容当作输入即可。
返回成功匹配的参数个数,失败则返回EOF(-1)
示例:fscanf(fp,"%d",&a);
格式化写文件-fprintf()
int fprintf( FILE *stream, const char *format, [ argument ]...);
示例:fprintf(fp, "%s", "Hello World!");
常用的读文件程序
//读文件
常用的写文件程序
//写文件
标签:文件,stream,int,C语言,FILE,指针,快速,size
From: https://www.cnblogs.com/FishSmallWorld/p/17071542.html