c语言中 文件,c语言中文件的使用方法

c语言中文件的使用方法

一.文件指针的定义

FILE *fp//注意FILE的大写

二.文件的打开

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

三.文件的使用方法

26e7abdb6727c84de735e997583498b5.png

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 读取内容时,可以在任意位置进行,但写入内容时,只会追加在文件尾部。

43272b6b3c59ccb4bff605cf6393f379.png

三.文件处理函数

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为定义的文件指针

  • 3
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值