一起talk C栗子吧(第一百四十二回:C语言实例--文件操作:基于文件指针二)
程序员文章站
2022-12-05 09:47:49
各位看官们,大家好,上一回中咱们说的是基于文件指针进行文件操作的例子,这一回咱们继续说该例子。闲话休提,言归正转。让我们一起talk c栗子吧!
看官们,我们在上一回中介绍了...
各位看官们,大家好,上一回中咱们说的是基于文件指针进行文件操作的例子,这一回咱们继续说该例子。闲话休提,言归正转。让我们一起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。
各位看官,关于文件操作:基于文件指针的例子咱们就说到这里。欲知后面还有什么例子,且听下回分解 。
推荐阅读
-
一起talk C栗子吧( 第一百四十回:C语言实例--文件操作:基于文件描述符三)
-
一起talk C栗子吧(第一百四十三回:C语言实例--文件操作:基于文件指针三)
-
一起talk C栗子吧(第一百三十九回:C语言实例--文件操作:基于文件描述符二)
-
一起talk C栗子吧(第一百三十八回:C语言实例--文件操作:基于文件描述符一)
-
一起talk C栗子吧(第一百四十一回:C语言实例--文件操作:基于文件指针一)
-
一起talk C栗子吧(第一百四十二回:C语言实例--文件操作:基于文件指针二)
-
一起talk C栗子吧(第一百三十九回:C语言实例--文件操作:基于文件描述符二)
-
一起talk C栗子吧(第一百三十八回:C语言实例--文件操作:基于文件描述符一)
-
一起talk C栗子吧(第一百四十二回:C语言实例--文件操作:基于文件指针二)
-
一起talk C栗子吧(第一百四十一回:C语言实例--文件操作:基于文件指针一)