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

网站开发报价人天中国城乡建设部官网

网站开发报价人天,中国城乡建设部官网,可以做我女朋友吗网站,wordpress 投稿图片C语言文件操作(1) 文章目录 C语言文件操作(1)一、理解文件1.概述2.分类①.正常角度②.文本文件和二进制文件 二、文件的打开和关闭1.流和标准流2.文件类型指针3.文件的打开和关闭以及使用类型 三、文件缓冲区 一、理解文件 1.概述…

C语言文件操作(1)

文章目录

  • C语言文件操作(1)
    • 一、理解文件
      • 1.概述
      • 2.分类
        • ①.正常角度
        • ②.文本文件和二进制文件
    • 二、文件的打开和关闭
      • 1.流和标准流
      • 2.文件类型指针
      • 3.文件的打开和关闭以及使用类型
    • 三、文件缓冲区

一、理解文件

1.概述

首先,我们要知道文件都是存储在磁盘上的,而我们平时写在编译器上写的代码等在保存之前都是存储在内存中的,也即带电存储,计算机内存是一种临时存储器,它的内容在计算机关闭或重启时会被清除,或者程序退出,内存回收,数据就丢失了。

如果想要永久化的保存数据,我们可以使用存储在磁盘上的文件。

2.分类

①.正常角度

从程序设计的角度来看,文件主要分为程序文件和数据文件。程序文件也就是我们常说的.c .obj .exe文件。

而在编程过程中的文件操作主要操作的就是数据文件,程序运行时读取数据的文件和程序运行时输出内容的文件。

注意:

程序中的数据 ———> 磁盘中的文件,这叫输出,即写

程序中的数据 <——— 磁盘中的文件,这叫输入,即读

输出输入是相对于程序中的数据来说的。

②.文本文件和二进制文件

根据数据的存储形式,数据文件被称为文本文件或者二进制文件。

数据在内存中以⼆进制的形式存储,如果不加转换的输出到外存,就是二进制文件。

如果要求在外存上以ASCII码的形式存储,则需要在存储前转换。以ASCII字符的形式存储的文件就是文本文件。

在内存中,字符⼀律以ASCII形式存储,数值型数据既可以用ASCII形式存储,也可以使用⼆进制形式存储。

举个例子:

将100以二进制形式写到文件里,出现不认识的函数大家不用担心,后续都会提到的呀!

#include <errno.h>
int main()
{int a = 100;FILE* fp = fopen("test.txt", "wb");if (fp == NULL){perror("fopen");return 1;}fwrite(&a, 4, 1, fp);fclose(fp);fp = NULL;return 0;
}

那让我们一起来验证一下:
1.将这个文件拖到源文件下面
2.右键点击打开方式选项在这里插入图片描述
3.选择二进制编辑器
在这里插入图片描述

二、文件的打开和关闭

1.流和标准流

我们程序的数据需要输出到各种外部设备,也需要从外部设备获取数据,不同的外部设备的输入输出操作各不相同,为了方便程序员对各种设备进行方便的操作,我们抽象出了流的概念,我们可以把流想象成流淌着字符的河。

C程序针对文件、画面、键盘等的数据输入输出操作都是同流操作的。一般情况下,我们要想向流里写数据,或者从流中读取数据,都是要打开流,然后操作。

那为什么我们从键盘输入数据,向屏幕上输出数据,并没有打开流呢?

那是因为C语言程序在启动的时候,默认打开了3个流:

stdin - 标准输入流,在大多数的环境中从键盘输入。

stdout - 标准输出流,在大多数的环境中输出至显示器界面。

stderr - 标准错误流,在大多数环境中输出到显示器界面。

这是默认打开了这三个流,我们使scanf、printf等函数就可以直接进行输入输出操作的。

2.文件类型指针

在使用文件,打开文件时,文件都会在内存中创建一个“文件信息区”,存放文件的相关信息,这些信息都保存在一个结构体变量里,FILE是这个结构体类型,创建一个FILE*类型的指针,可以指向这个文件信息区,并且通过文件信息来访问这个文件,通过文件指针变量能够间接找到这个与他关联的文件。

stdin、stdout、stderr三个流的类型是: FILE* ,通常称为文件指针。C语言中,就是通过 FILE* 的文件指针来维护流的各种操作的。

3.文件的打开和关闭以及使用类型

文件的打开和关闭,是依赖与fopen函数和fclose函数

//文件的打开
FILE* fp = fopen("test.txt", "wb");//注意:文件名和打开模式都是两个双引号if (fp == NULL){perror("fopen");return 1;}
//文件的关闭fclose(fp);fp = NULL;

fopen打开成功返回文件信息区的地址,打开失败返回NULL。

FILE * fopen ( const char * filename, const char * mode );

下面让我们一起来看看mode,也就是文件的打开模式

首先,我们来看一下"r"和"w"

r:文件必须存在,不存在的话则打开失败

w:如果文件存在会清空原来内容,相当于变成空文件,如果不存在,则创建一个新的文件。
更多有关mode的类型,可以点开这个链接。
fopen的mode

三、文件缓冲区

ANSIC 标准采用“缓冲文件系统”处理的数据文件的,所谓缓冲文件系统是指系统自动地在内存中为程序中每⼀个正在使用的文件开辟⼀块“文件缓冲区”。从内存向磁盘输出数据会先送到内存中的缓冲区,装满缓冲区后才一起送到磁盘上。如果从磁盘向计算机读入数据,则从磁盘文件中读取数据输入到内存缓冲区(充满缓冲区),然后再从缓冲区逐个地将数据送到程序数据区(程序变量等)。缓冲区的大小根据C编译系统决定的。

int main()
{FILE* pf = fopen("test.txt", "w");fputs("abcdef", pf);//先将代码放在输出缓冲区printf("睡眠10秒-已经写数据了,打开test.txt文件,发现文件没有内容\n");Sleep(10000);printf("刷新缓冲区\n");fflush(pf);//刷新缓冲区时,才将输出缓冲区的数据写到文件(磁盘)//注:fflush 在高版本的VS上不能使用了printf("再睡眠10秒-此时,再次打开test.tx文件,文件有内容了\n");Sleep(10000);//避免是fclose的影响fclose(pf);//注:fclose在关闭文件的时候,也会刷新缓冲区pf = NULL;return 0;
}

因为有缓冲区的存在,C语言在操作文件的时候,需要做刷新缓冲区或者在文件操作结束的时候关闭文件。

http://www.yayakq.cn/news/590457/

相关文章:

  • 上海有哪些做网站的公司cms网站
  • 做3d ppt模板下载网站有哪些wordpress搜索不能用
  • seopeix搜索引擎优化指的是
  • 网络教学网站建设菏泽建设信息网官网
  • 喀喇沁旗网站建设公司cms在线
  • 门户网站开发难点做外贸的社交网站有哪些
  • 怎么找个人搭建网站有什么网上做c 的网站
  • 昆明房地产网站建设公司禁用网站怎么做
  • 基于个性化推荐的电商网站设计与实现嵌入式培训什么意思
  • 做旅游的网站的目的和意义手机网站大小
  • 库尔勒网站建设广东品牌网站建设平台
  • 重庆网站建设近重庆零臻科技室内设计装修图
  • 免费商城系统下载西安seo排名收费
  • 网站建设横幅青岛注册公司多少钱
  • 要看网海外域名是多少windows优化大师是哪个公司的
  • 网站负责人灌南县城乡建设局网站
  • 如何做网站浏览pdfwordpress首页轮播图片尺寸
  • 小网站推荐一个宣传片拍摄脚本
  • 查找使用wordpress的网站什么网站做的好
  • 社区网站建设申请报告设计一个自己公司网站开发
  • 西宁网站建设有限公司乌海网站建设公司
  • 专业的营销型网站培训中心遵义市播州区住房和城乡建设局官方网站
  • 提高网站注册率wordpress分类链接打不开
  • 德阳网站建设网站成都比较好的广告设计制作公司
  • 西安网站建设云阔关于网站建设的指标
  • 案例学习网站建设方案摸摸学校电商网站改版方案
  • 网站制作的方法discuz插件
  • 温州网站推广效果好前端开发入门薪水
  • 史丹利网站开发团队苏州现在能正常出入吗
  • 固始县住房和城乡建设局网站交通建设网站