基本文件操作
Posted yangjiquan
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基本文件操作相关的知识,希望对你有一定的参考价值。
1. fopen文件的打开操作
1.1函数原型
#include <stdio.h>
FILE *fopen( const char *fname, const char*mode );
参数1:fname 表示文件名(可以含有路径信息)
参数2:打开方式
返回值:FILE* 文件指针,
如果打开失败,就返回NULL(就是0)
1.2mode 打开方式
"r" 以“读”的方式打开一个文本文件(只能读)
"r+" 与"r" 的区别在于,增加了“写”
"rb" 以“读”的方式打开一个二进制文件(只能读)
"rb+" 与"rb"的区别在于,增加了“写”
"w" 以“写”的方式创建一个文本文件,如果这个文件已经存在,就会覆盖原来的文件
"w+" 与"w"的区别在于,增加了“读”
"wb" 以“写“的方式创建一个二进制文件
"wb+" 与"wb"的区别在于,增加了“读”
"a" 以“尾部追加”的方式打开一个文本文件, (只能写)
"a+" 以"a"的区别在于,增加了"读"
"ab" 以“尾部追加”的方式打开一个二进制文件, (只能写)
"ab+" 与"ab"的区别在于,增加了“读”
小结
打开方式,共1到3个字符。
第一个字符是 r、w或a
r 表示“读”,用于打开已经存在的文件
w 表示“创建”, 用于创建一个新文件,并能够“写”
a 表示“尾部追加”,并能够"写"
b, 只能写在第二位,表示打开的是二进制文件
+,只能写在最后,表示增加一个读或写的功能
例子:
#include <stdio.h>
int main(void)
FILE *file;
file = fopen("users1.txt", "r");
if (file != NULL) //NULL就是0
printf("文件users.txt打开成功!\n");
else
printf("文件users.txt打开失败!\n");
return 0;
2. fclose文件的关闭操作
清理缓冲区,并释放文件指针
fclose(FILE*);
特别注意:
对文件执行写操作以后,并不会马上写入文件,而只是写入到了这个文件的输出缓冲区中!
只有当这个输出缓冲区满了,或者执行了fflush,或者执行了fclose函数以后,或者程序结束,
才会把输出缓冲区中的内容正真写入文件!
3. fgetc文件的读操作
函数原型:
#include <stdio.h>
int fgetc( FILE *stream );
返回值:成功时,返回读到的字符,返回的是int类型(实际值是字符)(可以使用%c直接打印出来)
失败或读到文件尾,返回EOF(就是-1)
作用:
从文件中读取一个字符
4. fputc写一个字符到文件
函数原型:
#include <stdio.h>
int fputc( int ch, FILE *stream );
注意:写入一个字符是在文件的头部写入,并且会覆盖原先的字符
如:若在有字符“hello”的文件中写入一个a,即fputc(‘c’,file)
hello->>>>aello
5.fputs 写一个字符串到文件中去
函数原型:
#include <stdio.h>
intfputs( const char *str, FILE *stream );
注意:
与上一个类似,也是在文件头部写入,并且会覆盖之前的字符
6. fprintf 往文件中写格式化数据
函数原型:
#include <stdio.h>
int fprintf( FILE *stream, const char*format, ... );
如:
fprintf(file1, "姓名:%s\t\t年龄:%d\n", name, age);
与上一个类似,也是在文件头部写入,并且会覆盖之前的字符
7.fscanf 格式化读取文件中数据
函数原型:
#include <stdio.h>
intfscanf( FILE *stream, const char *format, ... );
返回值:成功时,返回实际读取的数据个数
失败时,返回 EOF (-1)
以上是关于基本文件操作的主要内容,如果未能解决你的问题,请参考以下文章