当前位置:网站首页>详解C语言文件操作
详解C语言文件操作
2022-07-17 21:20:00 【终为—NULL】
每天进步一点点,坚持带来大改变!!!

目录
前言:
当我们想要将数据保存下来的时候,可以使用文件直接将数据存放到电脑的硬盘上,这样就可以做到数据的永久保存
1.什么是文件:
磁盘上的文件是文件,但是在程序设计中,我们一般谈文件有两种:程序文件和数据文件
1.程序文件:
包括源程序文件(后缀为.c),目标文件(windows环境后缀为.obj),可执行程序(windows环境后缀为.exe)。
2.数据文件:
文件的内容不一定是程序,而是程序运行时读写的数据,比如程序运行需要从中读取数据的文件,或者输出内容的文件。
3.文件名:
文件路径+文件名主干+文件后缀
2.文件的打开和关闭:
1.文件指针:
每个被使用的文件都在内存中开辟了一块相应的文件信息区,用来存放文件的相关信息,这些文件信息保存在一个结构体变量中,取名为FILE
定义一个文件指针变量:
FILE*pf
2.文件的关闭和打开:
文件的打开:fopen
FILE*fopen(constchar*filename,constchar*mode);
文件的关闭:fclose
intfclose(FILE*stream);
打开方式:
3.文件的顺序读写:
1.写一个字符:
intfputc(intc,FILE*stream);
2.读一个字符:
intfgetc(FILE*stream);
3.写一行数据:
intfputs(constchar*string,FILE*stream);
4.读一行数据:
char*fgets(char*string,intn,FILE*stream);
5.格式化输入数据:
格式化数据:包含各种数据类型
intfprintf(FILE*stream,constchar*format [, argument ]...);
6.格式化输出数据:
intfscanf(FILE*stream,constchar*format [, argument ]... );
7.以二进制的形式输出数据:
size_tfwrite(constvoid*buffer,size_tsize,size_tcount,FILE*stream);
将count个大小为size的数据以二进制的形式输出到文件流中
因为是通过二进制的形式写入文件,所以不能通过肉眼读懂文件中的内容
8.以二进制的形式读取数据:
size_tfread(void*buffer,size_tsize,size_tcount,FILE*stream);
将count个大小为size的数据从文件中以二进制形式读取出来
4.对比几组函数:
scanf:是针对标准化输入流的格式化输入语句
printf:是针对标准化输出流的格式化输出语句
fscanf:是针对所有输入流的格式化输入语句
fprintf:是针对所有输出流的格式化输出语句
sscanf:
int sscanf( const char *buffer, const char *format [, argument ] ... );
将字符串转换为格式化的输出语句
sprintf:
int sprintf( char *buffer, const char *format [, argument] ... );
将格式化的输入语句转换对应的字符串中:
3.文件的随机读写:
1.fseek:
根据文件指针的位置和偏移量来定位文件指针:
intfseek(FILE*stream,longoffset,intorigin );
2.ftell
返回文件指针相对与起始位置的偏移量:
longftell(FILE*stream);
3.rewind
让文件指针返回到起始位置:
voidrewind(FILE*stream);
4.文本文件和二进制文件:
文本文件:以ASCII的形式存储到文件的数据被称为文本文件
二进制文件:数据在内存中是以二进制的形式存储的,如果不加转换直接存储到文件中就是二进制文件
5.文件读取的结束的判定:
1.feof
intfeof(FILE*stream);
不能用feof的返回值直接用来判定文件是否结束,而是应用于当文件读取结束的时候,判断是读取失败结束,还是遇到文件尾结束
1.文本文件读取结束:
fgetc判断是否为EOF.
fgets判断返回值是否为NULL.
2.二进制文件读取结束:
fread判断返回值是否小于实际要读的个数。
1.文本文件的例子:
2.二进制文件的例子:
6.文件缓冲区:
从内存向磁盘输出数据会先送到内存中的缓冲区,装满缓冲区后才一起送到磁盘上。如果从磁盘向计算机读入数据,则从磁盘文件中读取数据输入到内存缓冲区(充满缓冲区),然后再从缓冲区逐个地将数据送到程序数据区(程序变量等)。缓冲区的大小根据C编译系统决定的。
总结:以上是关于C语言文件操作知识点详解,希望能在编程路的学习上能够互相帮助,互相促进,欢迎大家点赞,留言评论!!!
边栏推荐
- AcWing 274. 移动服务【DP】
- 华为无线设备配置智能漫游
- 96. Different binary search trees
- C # read and write text and generate QR code
- 欧奈尔的RPS曲线的编制方法(陶博士原创)
- A review of classical must see for Nonconvex Optimization Problems "from symmetry to geometry", University of Rochester, et al
- 负载均衡有哪几种实现方式?
- P8346 the clearest air and sea [undirected graph topology]
- ClassNotFoundException:com.tongweb.geronimo.osgi.locator.ProviderLocator
- 同一宿主机不同容器网络通信流程分析
猜你喜欢

ShanDong Multi-University Training #3

O'Neill's RPS curve compilation method (original by Dr. Tao)

Introduction:Multiple DataFrames

How to avoid global index in pychart? How to cancel the indexing of a folder?

Redis source code and design analysis -- 3 Dictionaries

坐标模拟矩阵旋转的公式

看一看try{}catch{}

topy库的安装(拓扑优化软件)

Class 3 practice

Ranking and evaluation of the second "green tree Cup" Mathematics Competition
随机推荐
The NFT market pattern has not changed. Can okaleido set off a new round of waves?
QChartView添加在QGridLayout中时覆盖了之前的控件
Is it true that tongdaxin opens an account? Is it safe for tongdaxin to open an account?
洛谷:P4516 [JSOI2018] 潜入行动(树形dp、树上分组背包统计方案数)
ShanDong Multi-University Training #3
【luogu P3220】与非(构造)(数位DP)(推论)
273. 分级 - AcWing题库【DP】
Win10 Microsoft Store打不开(开启TLS 1.2)
歐奈爾的RPS曲線的編制方法(陶博士原創)
Colliding mice collision engineering analysis
O'Neill's RPS curve compilation method (original by Dr. Tao)
无声的AI:昇腾AI如何用大模型破解手语学习的难题?
Homework on the first day of summer rhcsa training
[C language] introduction and implementation of mine sweeping [array and function]
微信小程序---wxss模板样式
Some puzzles about data dictionary
4 a company has branches in six cities C1, C2, C3... C6. The connection between cities Ci and CJ (I, j=1,2,3,... 6) and the cost are listed in the following weighted adjacency matrix C
Is it safe for Hongye futures to open an account online? Are there any account opening guidelines?
009 execution sequence of SQL statement of interview questions
Create a new Eureka client






















