当前位置: 首页 > news >正文

网站访问速度 云主机/湖南seo网站策划

网站访问速度 云主机,湖南seo网站策划,好学校平台网站模板下载不了,三亚做网站多少钱一平方一文搞懂C语言的文件操作一、什么是文件操作?文件操作那为什么需要文件操作这种东西呢?二、怎么实现文件操作?1.FILE2.fopen和fclose3.fscanf和fprintf4.fgetc和fputc5.fgets和fputs三、其它的文件操作(摘自教材)结语&…

一文搞懂C语言的文件操作

  • 一、什么是文件操作?
    • 文件
    • 操作
    • 那为什么需要文件操作这种东西呢?
  • 二、怎么实现文件操作?
    • 1.FILE
    • 2.fopen和fclose
    • 3.fscanf和fprintf
    • 4.fgetc和fputc
    • 5.fgets和fputs
  • 三、其它的文件操作(摘自教材)
  • 结语:虽然还有好多细节没有展示出来,不过那不影响学会使用文件操作,本文的作用就是帮助大家整理这一块的重要知识,学会用,进而形成自己的知识框架。如果要想深入理解,只靠这一篇博客还是不够的,有必要掌握好一些知识,比如说缓冲文件系统,指针等等。希望这篇博客能对大家有所帮助!


本文参考:浙大版《C语言程序设计(第4版)》

  1. 什么是文件操作
  2. 怎么实现基础文件操作
  3. 其它文件操作

一、什么是文件操作?

直接来看不太方便理解,我们把它分开。

文件

文件可以通过应用程序创建,如运行“记事本”程序,输入一些数据,然后保存并输入文件名,就会在磁盘中产生一个文本文件。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

刚刚我们创建的只是一种文件,叫做文本文件,还有好多其它类型的文件,每个文件都有自己的属性

文件的概念

在操作系统中,文件是指驻留在外部介质(如磁盘等)中的一个有序数据集
它可以是源文件、目标程序文件、可执行程序,也可以是待输入的原始数据,或是一组输出的结果。

文件的分类

源文件、目标文件和可执行程序可称为程序文件,输入输出数据可称为数据文件。数据文件还可分为各种类型,如文本文件、图像文件、声音文件等。使用应用程序时,通常保存功能实现把数据从内存写入到文件,这就是所谓的(存盘),打开功能实现把磁盘文件的内容读入到内存。

我们需要重点关注的类型就是数据文件
最直观的例子也就是记事本(可编辑的文本文档)

如果在用“记事本”程序编辑文件时不“保存”,数据就不会写入到磁盘,即若不保存而直接关闭了应用程序,数据就会消失。实际上,用“记事本”程序编辑文件时,输入的数据先是在内存中,保存后,数据才被写入到磁盘文件中。 这其实有点类似我们打游戏时的“存档”,不存档=刚刚的努力白费了

操作

我们需要了解的就是读和写两个操作,简单来说

读:scanf做的事情
写:printf做的事情

当上升到文件层面时,“读”就不再是我们平时那样,从键盘读入,而是从数据文件中(最常见的就是记事本)读入;“写”也就是输出,同样地,不会像我们之前写程序那样,显示在屏幕上,而是写在数据文件中(最常见的也是记事本)
在这里插入图片描述

那为什么需要文件操作这种东西呢?

有的人想问,这不是找麻烦吗?我直接ctrl + c / v,运行一下,结果显示在屏幕上,这不是很方便吗?整到记事本里面干什么。
其实,文件操作主要是运用于大量数据输入时,可能复制粘贴都得好几秒的那种,屏幕也放不下,那么这个时候用文件操作就很方便啦。

二、怎么实现文件操作?

直接上代码,用注释帮助理解。

具体细节不表
FILE *fp1, *fp2, *fp3;
fp1 = fopen("in.txt", "r");//读
fp2 = fopen("out.txt", "w");//写
/这里进行你的程序读写/
(读入类型一)
fscanf(fp1, "%d%lf", &n, &ft);
fprintf(fp2, "%d%f", n, ft);
(读入类型二)
ch = fgetc(fp1);
fputc(ch, fp2);
(读入类型三)
fgets(s, len, fp1);
fputs(s, fp2);
(关闭文件)
fclose(fp1);
fclose(fp2);
fp3 = fopen("out.txt", "a");//追加
fprintf(fp3, "需要补充在后面的东西****");
(关闭文件)
fclost(fp3);

以上就是就是常用的用法,我们接下来从以下几个方面来读懂这个程序

  1. FILE
  2. fopen和fclose
  3. fscanf和fprintf
  4. fgetc和fputc
  5. fgets和fputs

1.FILE

简单来写,就是下面这样的(不必搞懂里面的细节)

typedef struct {char *_ptr; //文件输入的下一个位置int _cnt; //当前缓冲区的相对位置char *_base; //指基础位置(即是文件的起始位置) int _flag; //文件标志int _file; //文件描述符idint _charbuf; //检查缓冲区状况,如果无缓冲区则不读取int _bufsiz; //文件缓冲区大小char *_tmpfname; //临时文件名}FILE;

所以我们知道,FILE是一个结构体类型,我们定义时
FILE * fp;
其实是定义了一个结构体指针,我们对这个文件指针进行操作时,本质上就对文件进行了操作。

2.fopen和fclose

fopen(“文件名”,文件打开方式);

例如:fp = fopen(“in.txt”, “r”);

说明:(1)该函数有返回值。如果执行成功,函数将返回包含文件缓冲区等信息的FILE结构地址,赋给文件指针fp。否则,返回一个NULL(空值)的FILE指针。
(2)括号内包括两个参数:“文件名”和“文件打开方式”。两个参数都是字符串。“文件名”指出要对哪个具体文件进行操作,一般要指定文件的路径,如果不写出路径,则默认与应用程序的当前路径相同。
在这里插入图片描述

我们只讲解了前三种,大家可以借助于此继续理解其它的方式,我们在此就不多赘述。
不过重点还是放在文本文件(左边一栏),二进制文件用到的情况很少。
fclose(文件指针);.

例如:fclose(fp);

说明:fclose的作用就是关闭文件,至于为什么,我们在前面的介绍中也提到过,如果不及时关闭,可能会出现数据保存不成功的问题。
此外,你需要知道:C语言允许一个程序同时打开多个文件,但是不允许同一文件在关闭前被打开,也就是说,你这一次不关,很有可能导致以后再用这个文件时,就打不开。

3.fscanf和fprintf

fscanf(文件指针,格式字符串,输入表);
fprintf(文件指针,格式字符串,输出表);

例如:
fscanf(fp1, “%d%lf”, &n, &ft);
fprintf(fp2, “%d%f”, n, ft);

说明:其实和scanf和printf差不多,多了一个参数是文件指针。

4.fgetc和fputc

fgetc(文件指针);(返回一个字符);
fputc(字符,文件指针);

例如:
ch = fgetc(fp1);
fputc(ch, fp2);

说明:其实和getchar()和putchar()差不多,多了一个参数是文件指针。

5.fgets和fputs

fgets(字符串首地址,想要读入的字符串长度,文件指针);
fputs(字符串首地址, 文件指针);

例如:
fgets(s, len, fp1);
fputs(s, fp2);

说明 :fgets()比gets()多了两个参数,一个是文件指针,一个是想要读入的长度,意思就是你想读进去几个字符存到字符串里,可以用变量来控制.
fputs()比puts()也就多了一个参数——文件指针。

三、其它的文件操作(摘自教材)

在这里插入图片描述
在这里插入图片描述

结语:虽然还有好多细节没有展示出来,不过那不影响学会使用文件操作,本文的作用就是帮助大家整理这一块的重要知识,学会用,进而形成自己的知识框架。如果要想深入理解,只靠这一篇博客还是不够的,有必要掌握好一些知识,比如说缓冲文件系统,指针等等。希望这篇博客能对大家有所帮助!

http://www.lbrq.cn/news/1392949.html

相关文章:

  • 怎么学习企业网站维护/如何优化网站
  • 南京企业网站设计公司/软文推荐
  • 福建省住房建设厅网站/百度企业推广
  • matlab 做网站开发/app拉新推广怎么做
  • 常州专业网站建设公司/全媒体运营师培训机构
  • 360做的网站/新站整站快速排名
  • 临沂哪家做网站最好/海洋网络推广效果
  • 我要看一集片做网站/南京seo网络优化公司
  • 怎样做模板网站/石家庄seo关键词
  • 四川成都网站网页设计/seo排名赚app多久了
  • 四川建设网站电子招标/网站如何推广营销
  • 重庆网站推广优化/如何在百度上发布广告
  • mac 做网站开发/seo专员很难吗
  • 云服务器搭建网站教程/网络营销品牌推广公司
  • 鄂尔多斯 网站建设/快速网站推广
  • 重庆公司网站制作公司/电商网站设计方案
  • 网站建设委托合同/广东近期新闻
  • 浙江建设部网站/中国十大电商平台
  • 关键词优化排名易下拉软件/百度关键词优化词精灵
  • 网站怎么做json数据库/杭州百度竞价推广公司
  • 网站后台如何登陆/seo整体优化
  • 网站建设服务中心/百度推广的步骤
  • 电子网站建设实训/什么叫网络市场营销
  • 自助网站建设推广优化策略/百度投诉中心电话
  • 购物网站制作免费/谷歌浏览器 免费下载
  • 新疆做网站找谁/百度电脑版
  • 昆明网站建设织梦/网络策划
  • 武汉高端网站定制设计师/sem竞价账户托管
  • 做网站什么费用/seo优化需要多少钱
  • 上海工商信息查询官网/网店搜索引擎优化的方法
  • 机器学习聚类算法
  • 0基础安卓逆向原理与实践:第3章:逆向工程理论基础
  • Vue2封装Axios
  • Elasticsearch 写入全链路:从单机到集群
  • AI on Mac, Your Way!全本地化智能代理,隐私与性能兼得
  • 【实时Linux实战系列】实时平台下的图像识别技术