C++文件操作方法小结

- 获取文件句柄

  - fopen, fclose

    fopen(filename, opentype): 按照opentype的方式打开指定文件,打开失败返回NULL,否则返回文件句柄。

      打开类型的属性(属性可以相互组合):   

       字符                含义
    ────────────────────────────

r(read):     读

w(write):       写

a(append):    追加

t(text):     文本文件,可省略不写

b(banary):    二进制文件

+:        读和写

    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━

    fclose(fp):关闭指定文件, 关闭成功返回0,否则返回非零数

- 读写文件

  - fgets ,fputs: 字符串读写(字符)

    fgets(str, n, FILE* fp):从fp中读一个字符串到str字符数组中,其中n表示从文件中读取出字符串的长度(会自动在最后一个字符上加上结束标志)

      1. 在第n-1个字符之前读取到' '或者EOF,结束读入

      2. 读入成功返回,字符数组首地址

    fputs(str, fp):把str写入到fp文件中

  - fread, fwrite: 数据块读写(数字变量,结构体)

    fread(buffer,size,count,fp):从fp中读取每次读取size个字节,读取count次,全部存入buffer指针所指的地址中(buffer表示存储数据的首地址指针)

    fwrite(buffer,size,count,fp): 从buffer中每次取size个字节,读取count,全部写入fp中

  - fscanf, fprintf:格式化读写

    fscanf(fp,”%d%s”,&i,s), fprintf(fp,”%d%c”,j,ch):与scanf, printf相似,只不过读写对象不是键盘和显示器,而是磁盘与文件


  - rewind, fseek:随机读写

    随机读写与上面的顺序读写不同的在于,文件指针可以移动到指定的位置,从而获取文件中某一部分数据。

    rewind(fp):移动文件内部指针到文件首部

    fseek(fp, (long)size, start_locate):表示把fp文件内部指针从start_locate开始移动size个字节(size一般是long类型,常数的话要在后面加L)

      start_locate:有三种类型 文件首部-->SEEK—SET-->0,文件当前位置-->SEEK—CUR-->1,文件末尾-->SEEK—END-->2

      fseek一般用于二进制文件,否则可能会计算错误,所以打开文件的时候可以以二进制的方式打开

原文地址:https://www.cnblogs.com/alihenaixiao/p/6429312.html