首页 > 其他分享 >文件的读写--C语言

文件的读写--C语言

时间:2023-02-26 23:02:04浏览次数:47  
标签:文件 stream -- 读写 C语言 int FILE 打开 指针

1、文件操作函数详解

C语言中没有输入输出语句,所有的输入输出功能,都用 ANSI C提供的一组标

准库函数来实现。文件操作标准库函数有:

(1)文件的打开:

fopen():打开文件

(2)文件的关闭:

fclose():关闭文件

(3)文件的读写:

fgetc():读取一个字符 fputc():写入一个字符 fgets():读取一个字符串 fputs():写

入一个字符串 fprintf():写入格式化数据 fscanf():格式化读取数据 fread():读取

数据 fwrite():写入数据

(4)文件状态检查:

feof():文件是否结束

ferror():文件读/写是否出错 clearerr():清除文件错误标志 ftell():文件指针的当前位置。

(5)文件指针定位:

rewind():把文件指针移到开始处 fseek():重定位文件指针


2、参数解释:

“r”:以只读的形式打开文本文件(不存在则出错)

“w”:以只写的形式打开文本文件(若不存在则新建,反之,则从文件起始位置

写,覆盖原内容)

“a”:以追加的形式打开文本文件(若不存在,则新建;反之,在原文件后追加)

“r+”:以读写的形式打开文本文件(读时,从头开始;写时,新数据只覆盖所占的

空间)

“wb”:以只写的形式打开二进制文件

“rb”:以只读的形式打开二进制文件

“ab”:以追加的形式打开一个二进制文件

“rb+”:以读写的形式打开二进制文件。

“w+”:首先建立一个新文件,进行写操作,然后从头开始读(若文件存在,原内

容将全部消失)

“a+”:功能与"a”相同。只是在文件尾部追加数据后,可以从头开始读

“wb+”:功能与"w+”相同。只是在读写时,可以由位置函数设置读和写的起始

位置

“ab+”:功能与"a+”相同。只是在文件尾部追加。据之后,可以由位置函数设置

开始读的起始位置

3、打开文件:(举例)

文件的读写--C语言_文本文件

注意:文件是否打开成功

          关闭文件

          文件指针置空

4、关闭文件:函数原型int fclose(FILE*stream)

文件的读写--C语言_文件指针_02

5、读取字符:int fgetc(FILE*stream)

文件的读写--C语言_文本文件_03

写入字符:int fputc(int c,FILE*stream)

 

文件的读写--C语言_文件读取_04

6、读取字符串

文件的读写--C语言_文本文件_05


7、读取数据块

文件的读写--C语言_文本文件_06

8、文件

文件指针重定位

int fseek( FILE * stream, long int offset, int origin);

·stream:流

·offset:相对应 origin 位置处的偏移量,单位为字节

·origin:指针的位置

#define SEEK CUR 1// 当前位置#define SEEK END 21/ 末尾#define SEEK SET 0 // 开头

获取指针位置

long int ftell ( FILE * stream );

·stream:流

文件指针移到开始处

void rewind( FILE *stream ):

.stream:流

清除文件错误标志

void clearerr( FILE *stream );

·stream: 流


文件流是否读到了文件尾

int feof( FILE *stream );

·stream:流

重命名文件

int rename ( const char * oldname, const char *

newname );

·oldname:原名

·newname:新名

删除文件

int remove ( const char * filename );

·filename:文件的路径

标签:文件,stream,--,读写,C语言,int,FILE,打开,指针
From: https://blog.51cto.com/u_15830263/6087005

相关文章

  • m基于simulink的jtids数据链抗干扰性能仿真分析
    1.算法描述联合战术信息分配系统(JTIDS)(JointTacticalInformationDistributionSystem)具有通信、导航和识别的综合功能,可供海、陆、空三军使用,具有海洋、空中和陆地作......
  • RPC如何实现流量隔离机制?
    应对突发流量,限流是好手段,但还有其它手段,可最大限度保障业务无损。1为何分组若在接口上再加一个分组维度去管理,不就让接口复杂了?实则不然,比如无汽车年代,道路很简单,就一条,行......
  • 高性能存储架构---HBase
    关系型数据库的瓶颈海量数据的高效率读写网站每天产生的数据量是巨大的,对于关系型数据库来说,需要进行主从复制、分库分表、垂直/水平拆分等处理来支持海量数据的存储与查......
  • m基于stft方法的跳频信号解跳和GFSK信号解调,并输出跳频图案
    1.算法描述扩频通信即扩展信号频带范围的一种通信方式,著名的香农定理告诉我们,当信道容量一定时,信号带宽与信噪比可以互换,也就是说理论上完全有可能在极低的信噪比环境下通......
  • 1-5 数据包交换原则
    数据包交换原则这一集的字幕不知道怎么回事,感觉像在抽风一样。交换机一些细节数据包的交换并不需要每一个流的状态,每个包都已经把这个信息包含在内了。不是每一个数......
  • JavaSE5️⃣核心类 - 枚举(enum)
    1、枚举1.1、含义维基百科在数学和计算机科学理论中,一个集的枚举是指:列出有穷序列集的所有成员的程序。一种特定类型对象的计数。这两种类型经常重叠,是一个被命......
  • m基于simulink的jtids数据链抗干扰性能仿真分析
    1.算法描述      联合战术信息分配系统(JTIDS)(JointTacticalInformationDistributionSystem)具有通信、导航和识别的综合功能,可供海、陆、空三军使用,具有海洋......
  • 并发专题一
    前言​经常在网上看到一些博客,介绍高并发。由于我们在实际开发过程遇到高并发的场景非常少,一直觉得很高大上,那我们通过CPU,操作系统,和JDK等方面揭开高并发的''神......
  • zxk-logs_springboot集成redis
    pom.xml:<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency><dependency><gro......
  • 特斯拉又有新动作了,真正的全自动驾驶!
    众所周知,特斯拉最近一段时间以来一直在打造全自动驾驶技术,特拉斯重新定义“驾驶”这个行为。未来的某一天我们或许根本就不再需要用到“驾驶员”这一词语,当地时间......