FILE *fopen(char *filename,char *type) 打开一个文件filename,打开方式为type,
并返回这个文件指针,type可为以下字符串加上后缀
Type |
读写性 |
文本/2进制文件 |
建新/打开旧文件 |
r |
读 |
文本 |
打开旧的文件 |
w |
写 |
文本 |
建新文件 |
a |
添加 |
文本 |
有就打开无则建新 |
r+ |
读/写 |
不限制 |
打开 |
w+ |
读/写 |
不限制 |
建新文件 |
a+ |
读/添加 |
不限制 |
有就打开无则建新 |
可加的后缀为t、b。加b表示文件以二进制形式进行操作,t没必要使用
例:
#include <stdio.h> main() { FILE *fp; fp=fopen("C:\\WPS\\WPS.EXE","r+b"); }
FILE *fdopen(int ahndle,char *type)
FILE *freopen(char *filename,char *type,FILE *stream)
int getc(FILE *stream) 从流stream中读一个字符,并返回这个字符
int putc(int ch,FILE *stream) 向流stream写入一个字符ch
int getw(FILE *stream) 从流stream读入一个整数,错误返回EOF
int putw(int w,FILE *stream) 向流stream写入一个整数
int ungetc(char c,FILE *stream) 把字符c退回给流stream,下一次读进的字符将是c
int fgetc(FILE *stream) 从流stream处读一个字符,并返回这个字符
int fputc(int ch,FILE *stream) 将字符ch写入流stream中
char *fgets(char *string,int n,FILE *stream)
从流stream中读n个字符存入string中
int fputs(char *string,FILE *stream)将字符串string写入流stream中
int fread(void *ptr,int size,int nitems,FILE *stream)
从流stream中读入nitems个长度为size的字符串存入ptr中
int fwrite(void *ptr,int size,int nitems,FILE *stream)
向流stream中写入nitems个长度为size的字符串,字符串在ptr中
int fscanf(FILE *stream,char *format[,argument,…])
以格式化形式从流stream中读入一个字符串
int vfscanf(FILE *stream,char *format,Valist param)
以格式化形式从流stream中读入一个字符串,参数从Valist param中取得
int fprintf(FILE *stream,char *format[,argument,…])
以格式化形式将一个字符串写给指定的流stream
int vfprintf(FILE *stream,char *format,Valist param)
以格式化形式将一个字符串写给指定的流stream,参数从Valist param中取得
int fseek(FILE *stream,long offset,int fromwhere)
函数把文件指针移到fromwhere所指位置的向后offset个字节处,fromwhere可以为以下值:
SEEK_SET 文件开关 SEEK_CUR 当前位置 SEEK_END 文件尾
long ftell(FILE *stream) 函数返回定位在stream中的当前文件指针位置,以字节表示
int rewind(FILE *stream) 将当前文件指针stream移到文件开头
int feof(FILE *stream) 检测流stream上的文件指针是否在结束位置
int fileno(FILE *stream) 取流stream上的文件处理,并返回文件处理
int ferror(FILE *stream) 检测流stream上是否有读写错误,如有错误就返回1
void clearerr(FILE *stream) 清除流stream上的读写错误
void setbuf(FILE *stream,char *buf) 给流stream指定一个缓冲区buf
void setvbuf(FILE *stream,char *buf,int type,unsigned size)
给流stream指定一个缓冲区buf,大小为size,类型为type,type的值见下表
type值 |
意义 |
_IOFBF |
文件是完全缓冲区,当缓冲区是空时,下一个输入操作将企图填满整个缓冲区.在输出时,在把任何数据写到文件之前,将完全填充缓冲区 |
_IOLBF |
文件是行缓冲区.当缓冲区为空时,下一个输入操作将仍然企图填整个缓冲区.然而在输出时,每当新行符写到文件,缓冲区就被清洗掉 |
_IONBF |
文件是无缓冲的.buf和size参数是被忽略的.每个输入操作将直接从文件读,每个输出操作将立即把数据写到文件中 |