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

深圳网站搭建专业公司学历网站怎么做

深圳网站搭建专业公司,学历网站怎么做,无域名网站 能否被百度,北新泾街道网站建设目录 1. 文本文件和二进制文件 2. 文件读取结束的判定 3. 文件缓冲区 1. 文本文件和二进制文件 根据数据的组织形式,数据文件被称为文本文件或二进制文件; 数据在内存中以二进制的形式存储,如果不加转换地输出到外存,就是二进…

目录

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

2. 文件读取结束的判定

3. 文件缓冲区


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

根据数据的组织形式,数据文件被称为文本文件或二进制文件;

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

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

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

以整数10000为例,如果以ASCII码形式输出到磁盘,则磁盘中占用5个字节(每个字符一个字节),而二进制形式输出,则在磁盘上只占4个字节;

 运行测试:

int main()
{int a = 10000;FILE* pf = fopen("E:\\C_文件操作\\C_文件操作\\test6.txt", "wb");if (pf == NULL){perror("fopen");return 1;}fwrite(&a, 4, 1, pf);fclose(pf);pf = NULL;return 0;
}

将test6.txt添加至源文件后,选择打开方式为二进制编辑器: 

 再打开对应文件:

 一般情况下,内存窗口、监视窗口等等为了避免二进制的不便计算,会展示为十六进制:对应十六进制00002710即2*16^3+7*16^2+1*16^1=10000;

2. 文件读取结束的判定

在文件读取过程中,不能用feof函数的返回值直接用来判断文件是否结束

而是应用于当文件读取结束时判断是读取失败结束还是遇到文件尾结束

1.文本文件读取是否结束,判断返回值是否为EOF(fgetc)或者NULL(fgets):

例如:fgetc判断是否为EOF,fgets判断返回值是否为NULL;

2.二进制文件的读取结束判断,判断返回值是否小于实际要读的个数,

例如:fread判断返回值是否小于实际要读的个数;

运行测试:

(1)文本文件:

# include<stdlib.h>
int main(void)
{int c; // 注意:int,非char,要求处理EOFFILE* fp = fopen("test.txt", "r");if (!fp) {perror("File opening failed");return EXIT_FAILURE;}//fgetc 当读取失败或者遇到文件结束时,都会返回EOFwhile ((c = fgetc(fp)) != EOF) // 标准C I/O读取文件循环{putchar(c);}//判断结束原因if (ferror(fp))   //ferror返回非0值时表示文件读取时发生错误puts("I/O error when reading");//ferror判断是否为读取失败或错误而结束else if (feof(fp)) //feof返回非0表示遇到文件末尾结束puts("End of file reached successfully");//feof判断是否为遇到文件末尾而结束fclose(fp);
}

(2)二进制文件:

enum 
{SIZE = 5
};
int main(void)
{double a[SIZE] = { 1.,2.,3.,4.,5. };FILE* fp = fopen("test.bin", "wb"); // 必须用二进制模式fwrite(a, sizeof * a, SIZE, fp); // 写 double类型数组fclose(fp);double b[SIZE];fp = fopen("test.bin", "rb");size_t ret_code = fread(b, sizeof * b, SIZE, fp); // 读 double类型数组if (ret_code == SIZE) {puts("Array read successfully, contents: ");for (int n = 0; n < SIZE; ++n) printf("%f ", b[n]);putchar('\n');}else { // 判断结束原因if (feof(fp))printf("Error reading test.bin: unexpected end of file\n");else if (ferror(fp)){perror("Error reading test.bin");}}fclose(fp);
}

3. 文件缓冲区

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

 同时因为缓冲区的存在,C语言在操作文件时,需要刷新缓冲区或在文件操作结束时必须关闭文件:

如果没有关闭文件则需手动调用fflush函数进行刷新缓冲区;

如果已调用fclose函数关闭文件,会自动清空缓冲区将数据存入硬盘中防止丢失,无需手动刷新;

否则可能会引发数据丢失、泄漏等问题。

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

相关文章:

  • 抖音营销网站建设价格合肥租房网
  • 吉林省建设监理协会网站诚信建设营销型企业网站的含义
  • 长沙做网站微联讯点很好市场调研报告800字
  • 含关键词的网站建设本地的番禺网站建设
  • 网站设计深圳网站建设公司建立wordpress
  • 建设微网站平台上海网站建设网页制作怎么样
  • 红酒网站模板深圳公司形象墙制作
  • 南宁太阳能网站建设万网空间上传网站吗
  • 娱乐网站开发多少钱WordPress多用户商城插件
  • 科技期刊网站建设临沂网站排名
  • 网站设计怎么做超链接wordpress微信登录设置
  • 南京 招网站开发金坛市常州网络推广
  • 哪个网站做外贸年费比较便宜广东电子商务网站建设价格
  • 网站建设每天的工作佛山做网站公司
  • 服装设计网站大全宁德市安全教育平台
  • vps搭建网站需要空间营销策划咨询机构
  • 个性化网站设计开饰品店网站建设预算
  • 建网站发信息做推广建筑工程完工证明格式
  • 中国建设银行东营分行网站汽车之家电脑网页版
  • 青岛网站建设大全服装展示网站源码
  • 盐城网站建设要多少钱天津工程信息网
  • 大型集团网站网络营销的主要内容包括
  • 网络科技公司网站制作做专业搜索引擎优化
  • 网站建设企业文化一站式营销平台
  • 首钢水钢赛德建设有限公司网站微信小程序电脑端打开
  • 品质好的网站制作东莞网站建设 信科网络
  • 免费做网站公司ydwzjs软文写作的基本要求
  • 六安网站建设全包视频链接生成
  • 经典的高端网站建设公司着陆页设计怎么建网站教程视频app
  • 石家庄网站seo外包万网总裁张向东