产品设计排版网站,网站建设小程序开发公司,提供衡水网站建设,wordpress站内信群发目录标准库IO函数一、fopen二、fwrite三、fread四、fseek五、fclose在编写程序时#xff0c;离不开IO操作#xff0c;最常见的IO操作就是用printf函数进行打印#xff0c;本文主要介绍的是封装后的IO库函数。
标准库IO函数
常使用的IO库函数如下#xff1a;
函数作用fop…
目录标准库IO函数一、fopen二、fwrite三、fread四、fseek五、fclose在编写程序时离不开IO操作最常见的IO操作就是用printf函数进行打印本文主要介绍的是封装后的IO库函数。
标准库IO函数
常使用的IO库函数如下
函数作用fopen打开指定的文件fwrite向指定的文件写入数据fread从指定的文件读取数据fseek跳转到指定文件的读写位置fclose关闭指定文件
一、fopen FILE *fopen(const char *path, const char *mode); 作用用指定的方式打开指定的文件
const char *path文件名要带这个文件的路径const char *mode文件的打开方式只读、追加写等方式 返回值成功返回FILE*文件流指针通过这个指针来操作文件失败返回NULL。 文件打开方式 mode
r只读文件必须存在否则打开失败r可读可写文件必须存在否则打开失败w只写文件不存在会创建文件并打开文件存在则会清空文件的原有内容并打开文件w可读可写文件不存在会创建文件并打开文件存在则会清空文件的原有内容并打开文件a追加只写文件不存在会创建文件并打开文件存在则直接打开写入数据时把数据写入到文件末尾a可读追加写文件不存在会创建文件并打开文件存在则直接打开写入数据时把数据写入到文件末尾b以二进制方式打开文件否则默认以文本形式打开文件 以上这些方式都是可以组合的比如可以使用二进制打开并且可读追加写ba
二、fwrite size_t fwrite(const void *ptr, size_t size, size_t nmemb,FILE *stream); 作用通过传递的文件流指针向文件写入指定大小的数据。
const void *ptr要向文件写入的数据的首地址size_t size要向文件写入数据的块大小。因为文件的写入和读取是以块为单位的块大小就是把数据均分成几块每块文件有多大。size_t nmemb要向文件写入数据的块的个数。FILE *stream文件流指针表示要把数据写入到哪个文件 返回值返回实际写入文件的完整块的个数1.5个块就返回10.5就返回0出错返回0。
三、fread size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream); 作用从指定的文件读取指定大小的数据。
void *ptr用来存储读取到的数据的空间的首地址。size_t size要读取的块的大小。size_t nmemb要读取的块的个数。FILE *stream要操作的文件的文件流指针。 返回值成功返回实际读取到的完整块的个数读取不足一块的返回0读取到了文件末尾返回0出错了返回0。因此返回值是有歧义的。 因为返回值有歧义因此通常把nmenb设置为要读取的数据的长度把块的大小设置成1这种方式可以明确通过返回值判断到底有没有读取到数据。还可以使用下面两个函数来帮助判断返回值的含义。 int ferror(FILE* stream) 作用测试文件的上一次操作是否出错了出错了返回1 int feof(FILE*stream) 作用测试文件读写是否到达文件末尾到达文件末尾返回1
四、fseek int fseek(FILE *stream, long offset, int whence); 作用跳转文件的读写位置。
FILE *stream要操作的文件流指针long offset偏移量负数表示向前偏移整数表示向后偏移0不偏移int whence表示从哪里开始偏移 返回值成功返回0失败返回-1 什么是读写位置为什么要跳转 如果往一个文件写数据写完之后直接读取你会发现什么也读不出来。因为文件有一个读写位置你可以理解成一个指针这个指针指向的是你文件操作的最末端你从最末端读取自然读取不出来因此读取前要把指针指向文件的开头也就是把读写位置跳转到开头。 whence选项
SEEK_SET起始位置SEEK_CUR当前读写位置SEEK_END末尾位置 注意如果你想在追加写的时候跳转读写位置比如说想在文件的开头进行追加写这样是不会成功的因为追加写只会在文件末尾进行写入。 文件的写入是一种覆盖式写入比如我将读写位置跳转到w字符处然后写入123这样wor三个字符会被覆盖。 五、fclose int fclose(FILE *stream); 作用关闭文件
FILE *stream要关闭的文件的文件流指针 返回值成功返回0失败返回-1