各位看官们,大家好,上一回中咱们说的是基于文件指针进行文件操作的例子,这一回咱们继续说该例子。闲话休提,言归正转。让我们一起talk C栗子吧!
看官们,我们在上一回中介绍了文件指针,今天我们将和大家一起看看如何通过文件指针来操作文件。文件操作仍然使用我们总结的文件操作三步曲:打开,操作和关闭。我们将使用标准库中的函数来实现这些文件操作。接下来我们介绍标准库中与文件操作相关的函数。
打开文件的函数
FILE *fopen(const char *path, const char *mode);
- 该函数用来打开文件或者创建一个新文件;
- 该函数的第一个参数是文件名,该文件名表示要打开的文件或者创建的文件;
- 该函数的第二个参数是打开文件的方式,详见下面的说明;
- 该函数运行成功时返回一个非空的文件指针;运行失败时返回NULL。
第二个参数是字符串,它的值可以是以下类型中的任意一个:
- “r”(只读的方式打开文件),
- “w”(只写的方式打开文件,并且把文件长度设置为0,如果文件不存在就创建文件),
- “a”(只写的方式打开文件,数据追加在文件末尾), ”r+”(以读和写的文件打开文件),
- ”w+”(以读和写的文件打开文件,并且把文件长度设置为0),
- “a+”(以读和写的方式打开文件,数据追加在文件末尾),
操作文件的函数
size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);
- 该函数用来从文件中读取数据;
- 该函数的第一个参数是指向缓冲区的指针,从文件中读取的数据会存放到该指针指向的缓冲区中;
- 该函数的第二个参数是每次读取数据的大小;
- 该函数的第三个参数是读取数据的次数,它与第二个参数的积就是一共读取的数据大小;
- 该函数的第四个参数是文件指针,它会读取该文件指针所指向的的文件中的数据;
- 该函数运行成功时返回读取到数据的数量,通常与第三个参数的值相等,如果到了文件末尾时会小于该值,或者为0。如果运行失败会把失败信息写入到标准错误流中.可以使用ferror()函数查看错误信息。
size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream);
- 该函数用来向文件中写入数据;
- 该函数的第一个参数是指向缓冲区的指针,它会把缓冲区中的数据写入到文件中;
- 该函数的第二个参数是每次写入数据的大小;
- 该函数的第三个参数是写入数据的次数,它与第二个参数的积就是一共写入的数据大小;
- 该函数的第四个参数是文件指针,它会把数据写入到该指针所指向的的文件中;
- 该函数运行成功时返回写入数据的数量,通常与第三个参数的值相等,如果返回的值小于该值,或者为0, 那么就表示发生了错误。同时会把失败信息写入到标准错误流中,可以使用ferror()函数查看错误信息。
关闭文件的函数
int fclose(FILE *fp)
- 该函数用来关闭文件;
- 该函数的参数表示文件指针,它会把与该文件指针所指的文件关闭掉,同时关闭文件流。
- 该函数运行成功时返回0,运行失败时返回-1.同时设置全局变量error。
各位看官,关于文件操作:基于文件指针的例子咱们就说到这里。欲知后面还有什么例子,且听下回分解 。