c语言文件读写操作
1、打开文件
FILE *fopen( const char * filename, const char * mode );
其中mode模式:
r | 打开文本文件,允许读操作 |
w | 打开文本文件、允许写操作,文件长度清0;若文件不存在,创建新文件 |
a | 打开文本文件,追加写文件;若文件不存在,创建新文件; |
r+ | 打开文本文件,允许读写文件 |
w+ | 打开一个文本文件,允许读写操作;若文件存在,长度清0,若文件不存在,创建新的文件 |
a+ | 打开一个文本文件,允许读写操作;读文件从头开始读,写文件只能追加;若文件不存在,创建爱你新的文件 |
若操作的是二进制文件:
"rb", "wb", "ab", "rb+", "r+b", "wb+", "w+b", "ab+", "a+b"
2、关闭文件
int fclose( FILE *fp );
3、写入文件
int fputc( int c, FILE *fp );
把单个字符写入到文件流fp中,写入成功返回字符;
int fputs( const char *s, FILE *fp );
字符串写入到文件流中,写入成功返回非负值;
int fprintf(FILE *fp,const char *format, ...)
4、读取文件
int fgetc( FILE * fp );
从文件流读取单个字符,读取成功,返回读取的字符
char *fgets( char *buf, int n, FILE *fp );
从文件流中读取n-1个字符,并保存在缓冲区buf中;并会增加一个null
5、一些常见的函数
1 int fclose(FILE *stream) //关闭流 stream。刷新所有的缓冲区 2 3 int feof(FILE *stream) //测试给定流 stream 的文件结束标识符 4 5 int fflush(FILE *stream) // 刷新流 stream 的输出缓冲区 6 7 FILE *fopen(const char *filename, const char *mode) //使用给定的模式 mode 打开 filename 所指向的文件 8 9 int fsetpos(FILE *stream, const fpos_t *pos) //设置给定流 stream 的文件位置为给定的位置。参数 pos 是由函数 fgetpos 给定的位置 10 11 size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream) //把 ptr 所指向的数组中的数据写入到给定流 stream 中 12 13 int remove(const char *filename) //删除给定的文件名 filename,以便它不再被访问 14 15 int fprintf(FILE *stream, const char *format, ...) //发送格式化输出到流 stream 中 16 17 int fgetc(FILE *stream) //从指定的流 stream 获取下一个字符(一个无符号字符),并把位置标识符往前移动 18 19 char *fgets(char *str, int n, FILE *stream) //从指定的流 stream 读取一行,并把它存储在 str 所指向的字符串内。当读取 (n-1) 个字符时,或者读取到换行符时,或者到达文件末尾时,它会停止,具体视情况而定 20 21 int fputc(int char, FILE *stream) //把参数 char 指定的字符(一个无符号字符)写入到指定的流 stream 中,并把位置标识符往前移动 22 23 int fputs(const char *str, FILE *stream) //把字符串写入到指定的流 stream 中,但不包括空字符 24 25 int getc(FILE *stream) //从指定的流 stream 获取下一个字符(一个无符号字符),并把位置标识符往前移动 26 27 int getchar(void) //从标准输入 stdin 获取一个字符(一个无符号字符) 28 29 char *gets(char *str) //从标准输入 stdin 读取一行,并把它存储在 str 所指向的字符串中。当读取到换行符时,或者到达文件末尾时,它会停止,具体视情况而定 30 31 int putc(int char, FILE *stream) //把参数 char 指定的字符(一个无符号字符)写入到指定的流 stream 中,并把位置标识符往前移动 32 33 int putchar(int char) //把参数 char 指定的字符(一个无符号字符)写入到标准输出 stdout 中 34 35 int puts(const char *str) //把一个字符串写入到标准输出 stdout,直到空字符,但不包括空字符。换行符会被追加到输出中 36 37 int ungetc(int char, FILE *stream) //把字符 char(一个无符号字符)推入到指定的流 stream 中,以便它是下一个被读取到的字符 38 39 void perror(const char *str) //把一个描述性错误消息输出到标准错误 stderr。首先输出字符串 str,后跟一个冒号,然后是一个空格