C语言标准文件操作函数的头文件为 stdio.h
1、
FILE *fopen(const char *path, const char *mode);/*成功则返回文件指针,出错返回NULL并设置errno*/
打开方式mode 有6种,分别是
"r",只读
"w",只写,如果文件不存在则创建,如果文件存在则把文件截断为0字节再重新写
"a",只能在文件尾追加数据,如果不存在则创建
"r+",允读和写,文件必须存在
"w+",允许读和写,如果文件不存在,则创建,如果存在,则把件截断为0字节再重新写
"a+", 允许追加数据,如果文件不存在则创建。
2、
int fclose(FILE *fp);
关闭一个文件
3、
int fgetc(FILE *stream);/*从文件读入一个字节,成功返回读到的值,出错返回EOF*/
4、
int fputc(int c, FILE *stream);/*向文件输出一个字节*/
5、
int fseek(FILE *strean, long offset, int whence);/*设置读写位置,成功返回0,出错返回-1并设置errno*/ long ftell(FILE *stream);/*成功返回当前位置,出错返回-1*/ void rewind(FILE *stream)/*读写位置置0*/
fseek 函数的whence表示从哪开始设置读写位置,有三值可以设置工:
SEEK_SET , 从文件开头移动offset个字节
SEEK_CUR , 从当前位置移动offset个字节
SEEK_END , 从文件尾移动offset个字节
6、
size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream); size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream);7\
上面两个读写函数再熟悉不过了
7、格式化IO函数
int printf(const char *format, ...);/*格式化打印到标准输出*/ int fprintf(FILE *stream, const char *format, ...);/*格式化打印到文件*/ int sprintf(char *str, const char *format, ...);/*格式化输出到内存*/ int snprintf(char *str, size_t size, const char *format, ...);/*格式化输出指定大小的内存*/
关于如何格式化,再写一篇作为参考吧
8、stdin/stdout/stderr
int putchar(int c);/*输出一个字节到stdout*/ int getchar(int c);/*从stdin输入一个字节*/ /*还有printf,格式化输出到stdout*/
在程序启动时(在main
函数还没开始执行之前)会自动把终端设备打开三次,分别赋给三个FILE *
指针stdin
、stdout
和stderr
,这三个文件指针是libc
中定义的全局变量,在stdio.h
中声明,printf
向stdout
写,而scanf
从stdin
读入。stderr
也只用于写操作,称为标准错误输出(Standard Error),通常程序的运行结果打印到标准输出,而错误提示(例如gcc
报的警告和错误)打印到标准错误输出。
9、
int fflush(FILE *stream);/*将io缓存的数据写入到实际文件中*/