c语言中文件的使用方法

送分小仙女□ 提交于 2019-12-20 08:38:40

c语言中文件的使用方法

一.文件指针的定义

FILE *fp//注意FILE的大写

二.文件的打开

fp=fopen("(路径)文件名.文件格式后缀","文件的使用方法"//注意路径下为//而不是/

三.文件的使用方法

这里是引用
1.“r” 模式:

          1.1 打开文件进行只读操作,即只能从文件读取内容。

          1.2 若欲操作的文件不存在,则打开失败。

          1.3 成功打开文件时,文件指针位于文件开头。

          1.4 打开文件后,不会清空文件内原有内容。

          1.5 可从文件中任意位置读取内容。

   2."w" 模式:

          2.1 打开文件进行“只写”操作,即只能向文件写入内容。

          2.2 若欲操作的文件不存在,则新建文件。

          2.3 成功打开文件时,文件指针位于文件开头。

          2.4 打开文件后,会清空文件内原有的内容。

          2.5 可向文件中任意位置写入内容,且进行写入操作时,会覆盖原有位置的内容。

   3."a" 模式:

          3.1 打开文件进行“追加”操作,即只能向文件写入内容。

          3.2 若欲操作的文件不存在,则新建文件。

          3.3 成功打开文件时,文件指针位于文件结尾。

          3.4 打开文件后,不会清空文件内原有内容。

          3.5 只能向文件末尾追加(写)内容。

   4."r+"模式:

          4.1 打开文件进行“读写”操作,即既可读取,又可写入。

          4.2 若欲操作的文件不存在,则打开失败。

          4.3 成功打开文件时,文件指针位于文件开头。

          4.4 打开文件后,不会清空文件内原有内容。

          4.5 无论是读取内容还是写入内容,都可在文件中任意位置进行,且进行写入操作时,会覆盖原有位置的内容。

   5."w+"模式:

          5.1 打开文件进行“读写”操作,即既可读取,又可写入。

          5.2 若欲操作的文件不存在,则新建文件。

          5.3 成功打开文件时,文件指针位于文件开头。

          5.4 打开文件后,会清空文件内原有的内容。

          5.5 无论是读取内容还是写入内容,都可在文件中任意位置进行,且进行写入操作时,会覆盖原有位置的内容。

   6."a+"模式:

          6.1 打开文件进行“读写”操作,即既可读取,又可写入。

          6.2 若欲操作的文件不存在,则新建文件。

          6.3 成功打开文件时,文件指针位于文件结尾。

          6.4 打开文件后,不会清空文件内原有内容。

          6.5 读取内容时,可以在任意位置进行,但写入内容时,只会追加在文件尾部。

在这里插入图片描述

三.文件处理函数

A.fgetc\fputc(字符)

fgetc意为从文件指针stream指向的文件中读取一个字符,读取一个字节后,光标位置后移一个字节。

fgetc格式:

ch=fgetc(FILE *stream)

fputc意为将字符ch写到文件指针fp所指向的文件的当前写指针的位置。

fputc格式:

fputc(char c, FILE *fp)

B.fgets\fputs(字符串)

fgets函数功能为从指定的流中读取数据,每次读取一行。从指定的流 stream 读取一行,并把它存储在 str 所指向的字符串内。当读取 (n-1) 个字符时,或者读取到换行符时,或者到达文件末尾时,它会停止,具体视情况而定。

fgets格式:

fgetc(char *str, int n, FILE *stream)

fputs是一个函数,具有的功能是向指定的文件写入一个字符串(不自动写入字符串结束标记符‘\0’)。成功写入一个字符串后,文件的位置指针会自动后移,函数返回值为非负整数;否则返回EOF(符号常量,其值为-1)。

fputs格式:

fputs(const char *str, FILE *stream)

返回值:该函数返回一个非负值,如果发生错误则返回 EOF(-1)。
(1)str:这是一个数组,包含了要写入的以空字符终止的字符序列。
(2)stream:指向 FILE 对象的指针,该 FILE 对象标识了要被写入字符串的流

C.数据块的读写
fread\fwrite

fread从给定输入流stream读取最多count个对象到数组buffer中(相当于以对每个对象调用count次fgetc),把buffer当作unsigned char数组并顺序保存结果。流的文件位置指示器前进读取的字节数。
若出现错误,则流的文件位置指示器的位置不确定。若没有完整地读入最后一个元素,则其值不确定。

fread格式:

fread( void *buffer, size_t size, size_t count, FILE *stream )

fwrite() 是 C 语言标准库中的一个文件处理函数,功能是向指定的文件中写入若干数据块,如成功执行则返回实际写入的数据块数目。该函数以二进制形式对文件进行操作,不局限于文本文件。

fwrite格式:

fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream)

返回值:返回实际写入的数据块数目
(1)buffer:是一个指针,对fwrite来说,是要获取数据的地址;
(2)size:要写入内容的单字节数;
(3)count:要进行写入size字节的数据项的个数;
(4)stream:目标文件指针;
(5)返回实际写入的数据项个数count。

D.fscanf\fprintf

fscanf 其功能为根据数据格式(format),从输入流(stream)中读入数据,存储到argument中,遇到空格和换行时结束。

fscanf格式:

fscanf(FILE * stream, const char * format, [argument...])

fprintf()函数根据指定的格式(format),向输出流(stream)写入数据(argument)。

fprintf格式:

 fprintf (FILE* stream, const char*format, [argument])

stream-- 这是指向 FILE 对象的指针,该 FILE 对象标识了流。
format-- 这是 C 字符串,包含了要被写入到流 stream 中的文本。它可以包含嵌入的 format 标签,format 标签可被随后的附加参数中指定的值替换,并按需求进行格式化。
format 标签属性是%[flags][width][.precision][length]specifier
[argument]:附加参数列表

注意在格式中有读取长度的n时,系统会预留一个给’\0’,如果欲读取10个,则n在定义时,应该定义为10+1.
每一次文件引用结束后都要记得关闭打开了的文件

fclose(fp)//fp为定义的文件指针
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!