关于标c中的文件操作知识点(1)

1. 标c中文件操作相关标准函数

1) fopen函数用于打开一个文件

2) fclose函数用于关闭一个文件

3) fwrite/fread函数实现向文件中写信息和从文件中读信息的功能

4) fseek函数实现文件描述符(文件位置指针)的偏移功能(也就是可以让你在读写文件时,确定你要输入或者读出数据的位置)

5) rewind函数,实现每次输入读取数据都回到文件头;  

2.  fopen标准函数的使用范例

  FILE* file = fopen("a.txt","w");

  if(file == NULL)

  {

    perror("fopen"),exit(-1);

  }

3. 文件打开模式

文件的打开分为下面几种模式,写的时候,可以添加其中一种,其实也就是在使用函数fopen()的时候,调用的一个参数;

1) "r": 只能读取数据,从文件头开始要求文件已经存在

2) "r+": 即可以读数据也可以写数据从文件头开始的要求文件已经存在

3) "w" : 只能向文件中写数据从文件头开始的如果文件事先不存在则临时创建文件,否则先删除文件再打开

4) "w+": 即能读数据也能写数据操作从文件头开始如果文件事先不存在则临时创建文件,否则先删除文件再打开

5) "a": 只能写数据在文件末尾进行操作如果文件事先不存在则临时创建文件,否则不修改文件原内容

6) "b": 可以和上面的任何一种方式混合使用这个字母表示对文件进行二进制操作

4. 使用注意:

1) fopen函数有可能失败,如果返回值当做布尔值使用时相当于真则打开成功,否则打开失败

2) 每当结束对一个文件的所有操作后都必须使用fclose关闭文件

5.  fread/fwrite标准函数的参数

例子如下:

fwrite(&i,4,1,file);

fread(&i,4,1,file);

1.参数一表示一个数组(用数组名称)

2.参数二表示数组中每个变量的大小(也可以用sizeof(变量类型));

3.参数三表示希望读写的变量个数(你要读取几个变量)

4.参数四表示要读写的文件(一般都用文件指针)

5 返回值表示实际读写的变量个数

6.  rewind函数的说明

rewind() 函数,主要的作用就是将文件的位置指针移动到文件的开头;

头文件:stdio.h

用法: void rewind(FILE *stream);(其实就是rewind(fd);就ok了)
返回值:无

注意:这里的文件的位置指针,不是说的文件的指针。

文件的指针是指向整个文件的指针,也就是说,这个指针的地址是指着这个文件,这个指针除非你再次让它指向其他文件,否则,它是不会改变的;

而文件的位置指针,说的是,文件内部的位置指针,它随着对文件的读写文件的位置指针(指向当前读写字节)向后移动,它是随着文件操作函数的使用,会一直在改变;


7.  fseek() 函数的说明

fseek函数可以把位置指针移动到文件中的任何地方,但是需要参数的设定;

函数的应用:

int fseek(FILE *stream, long offset, int fromwhere);

其中三个参数,解释如下:

FILE *stream

定义一个文件指针,其实也就是在打开文件的时候,建立的一个指针,它指向整个文件;

long offset
你要偏移的位移量,与第三个参数关联;

int fromwhere (基准位置)

三个基准位置如下

SEEK_SET 1 文件开头

SEEK_CUR 2 当前位置指针的位置

SEEK_END 3 文件末尾

与第二个参数,确定,你要的文件的位置指针指向的位置;

原文地址:https://www.cnblogs.com/aiyq195/p/6396294.html