针对文件
刷新条件
针对终端
刷新条件
FILE *fopen(const char *path, const char *mode)
功能
参数
path:打开的文件
mode:打开的方式
返回值
例
FILE * freopen(const char *pathname, const char *mode, FILE* fp)
功能:将指定的文件流重定向到打开的文件中
参数
返回值
perror是一个库函数,这个函数内部会自己获取errno的值,调用这个函数会直接把错误提示字符串打印出来。此外,我们也可以在错误提示字符串前添加一些自己想要打印的信息→perror(“fopen err”);
man手册信息
int fclose(FILE* stream);
功能
参数
返回值
成功
失败
fgetc
int fgetc(FILE * stream)
功能:从文件中读取一个字符
参数:stream:文件流
返回值:
fputc
int fputc(int c, FILE * stream)
功能:向文件流stream中写入一个字符c
参数
返回值
练习1
练习2
fgets
char * fgets(char *s, int size, FILE * stream);
功能:从文件流中每次读取一行字符串至s所指向的字符串中
参数
返回值
特性
fputs
int fputs(const char *s, FILE * stream);
功能:把以空字符(\0)结尾的字符串输出到指定文件流中,末尾的空字符(\0)并不输出。
由于字符串并没有要求一定换行符为结尾,所以这个函数也不一定是一次输出一行的。
参数
返回值
练习
fread
size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);
功能:从stream文件流读取nmenb个数据项存放至ptr所指的数组中,其中每一项数据长度为size大小,故所读取总字节数为size*nmemb
参数
返回值
fwrite
size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream);
功能:从ptr所指的数组中写出nmemb个数据项至stream指定的流
参数
返回值
例
练习:实现cp fread fwrite 复制一张图片
rewind
fseek
int fseek(FILE *stream, long offset, int whence);
功能:文件的定位操作
参数
stream:文件流
offset:偏移量:正数表示向后文件尾部偏移,负数表示向文件开头偏移
whence:相对位置:
返回值
注:当打开文件的方式为a或a+时,fseek不起作用
ftell
*long ftell(FILE stream);
功能:获取当前的文件位置
参数:要检测的文件流
返回值
获取文件长度
例
feof
ferror
例