码迷,mamicode.com
首页 > 其他好文 > 详细

基本文件操作

时间:2019-08-17 15:09:18      阅读:86      评论:0      收藏:0      [点我收藏+]

标签:can   lse   参数   pen   格式   print   格式化   name   关闭   

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)

 

基本文件操作

标签:can   lse   参数   pen   格式   print   格式化   name   关闭   

原文地址:https://www.cnblogs.com/yangjiquan/p/11368332.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!