zoukankan      html  css  js  c++  java
  • 基本文件操作

    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打开成功! ");

           } else {

                  printf("文件users.txt打开失败! ");

           }

           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 年龄:%d ", name, age);

    与上一个类似,也是在文件头部写入,并且会覆盖之前的字符

    7.fscanf 格式化读取文件中数据

    函数原型:

     #include <stdio.h>

     intfscanf( FILE *stream, const char *format, ... );

    返回值:成功时,返回实际读取的数据个数

           失败时,返回 EOF (-1)

  • 相关阅读:
    BZOJ-2431: [HAOI2009]逆序对数列 (傻逼递推)
    BZOJ3695 滑行
    BZOJ3689 异或之
    BZOJ3696 化合物
    BZOJ1393 [Ceoi2008]knights
    BZOJ2280 [Poi2011]Plot
    BZOJ1570 [JSOI2008]Blue Mary的旅行
    BZOJ2751 [HAOI2012]容易题(easy)
    BZOJ2818 Gcd
    BZOJ2426 [HAOI2010]工厂选址
  • 原文地址:https://www.cnblogs.com/yangjiquan/p/11368332.html
Copyright © 2011-2022 走看看