C语言文件操作解析(一)

在讨论C语言文件操作之前,先了解一下与文件相关的东西。

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

文本文件的定义:由若干行字符构成的计算机文件,存在于计算机系统中。文本文件只能存储文件中的有效字符信息,不能存储图像、声音等信息。狭义上的二进制文件则指除开文本文件之外的文件,如图片、DOC文档。

事实上,无论是上面所定义的文本文件还是二进制文件,在计算机中存储都是以二进制的形式存储的,因此其本质并没有区别。所以广义上的二进制文件便指所有的文件。

通常意义下,我们所说的文本文件指只包含了纯文本信息的文件(通过手动编辑完成,包含的都是可显字符),二进制文件特指文件里面存储的是二进制代码的文件。至于为什么在计算机内存储的都是二进制数据,而给我们所呈现的确是文字、图像等信息,这跟计算机硬件组成有关系,因为计算机里面的元件是晶体管,其只有两种稳定的状态,因此二进制的0和1能表示其状态。很多个晶体管的不同状态的组合便呈现给我们不同的信息了。下面以汉字在计算机中的表示为例。

二.汉字在计算机中的表示

用计算机去处理汉字信息,必须对汉字进行编码,变成能被计算机识别的二进制。汉字编码主要有输入码、机内码、字形码三种。分别有不同的作用。

输入码:为了能直接使用西方英文标准键盘输入汉字,必须制定相应的编码规则,如拼音码(拼音输入法)、数字码(数字输入法)等

机内码:指汉字在计算机内部的表示形式,即二进制形式,通常采用两字节来表示一个汉字,每个字节的最高位设置为1(其值为负),如汉字“我”在计算机内的表示为11001110 11010010.

字形码:存储在计算机内的汉字需要在屏幕上显示或者打印机上输出时,需要知道汉字的字形信息,而汉字的机内码并不能表示汉字的字形信息,因此需要专门的字形码 。最通用的字形信息显示采用点阵的形式,即将汉字的字形分解成若干个“点”形成的点阵。每个点有黑白两种信息,有笔画的用黑表示,反之用白表示。汉字的点阵信息量是很大的,比如16*16的点阵需要用256位表示其信息,则需要32字节的空间。

计算机中存放了所有汉字的字形码组合起来的字形库也称字模库,当汉字输出或者显示的时候由专门的字形检索程序根据这个汉字的机内码在字模库中找出与之对应的字形码,然后根据字形码输出到显示设备上。

所以我们平常所看到的文本文件或者图片等在计算机上都是以二进制形式存储,只是在显示的时候以人所能够识别的方式呈现给我们。

测试程序

#include<stdio.h>#include<string.h>

int main(void){char s[]="我";    unsigned char *p=(unsigned char *)s;    printf("%d\n",strlen(s));    printf("%X\n",*p);    printf("%X\n",*(p+1));return 0;}

输出结果:

2
CE
D2
Press any key to continue

转载于:https://www.cnblogs.com/dolphin0520/archive/2011/10/05/2199396.html

C语言文件操作解析(一)相关推荐

  1. C语言文件操作解析(二)【转载】

    http://www.cnblogs.com/dolphin0520/archive/2011/10/05/2199598.html C语言文件操作解析(二) C语言中对文件进行操作必须首先打开文件, ...

  2. C语言文件操作解析(二)

    C语言文件操作解析(二) C语言中对文件进行操作必须首先打开文件,打开文件主要涉及到fopen函数.fopen函数的原型为 FILE* fopen(const char *path,const cha ...

  3. c语言读写文件 eof,C语言文件操作之EOF解析

    作者:海子 出处:http://www.cnblogs.com/dolphin0520/ C语言文件操作解析(五)之EOF解析 在C语言中,有个符号大家都应该很熟悉,那就是EOF(End of Fil ...

  4. C语言文件缓冲区作用,C语言 文件操作4--文件结构体FILE的理解以及缓冲区再讲...

    //文件结构体FILE的理解以及缓冲区再讲 #include #include //要点:文件结构 //struct _iobuf { // char *_ptr; ------当前缓冲区内容指针 / ...

  5. ❤️学懂C语言文件操作读这篇就够了(万字总结,附习题)❤️

    目录 ​​​ 一,写在前面 二,为什么使用文件 1,原因 2,数据流 3,缓冲区(Buffer) 4,C语言中带缓冲区的文件处理 5,文件类型 6,文件存取方式 三,什么是文件 1,程序文件 2,数据 ...

  6. C语言——文件操作函数 fseek、ftell、rewind详解

    前言 前面,我讲了讲文件操作的第二步:文件的读写操作,里面详细的介绍了各类读写函数的用法,有兴趣的小伙伴可以去看看: C语言--文件操作(2)文件的读写操作_ 接下来,我再来讲一讲关于标题中这三个函数 ...

  7. C语言文件操作函数大全(看到总结的真的很好,就转载贡献给大家了)

    C语言文件操作函数大全 clearerr(清除文件流的错误旗标) 相关函数 feof 表头文件 #include<stdio.h> 定义函数 void clearerr(FILE * st ...

  8. c语言计算文件摘要值,c语言文件操作摘要.ppt

    c语言文件操作摘要 第十章 文件 10.1 C文件概述 文件:存储在外部介质上数据的集合,是操作系统数据管理的单位 文件处理方法 缓冲文件系统:高级文件系统,系统自动为正在使用的文件开辟内存缓冲区 非 ...

  9. c语言全文件操作函数,C语言文件操作函数大全

    C语言 文件操作函数大全 C语言文件操作函数 2007-10-17 19:21 13.1C语言文件 1,两种文件存取方式(输入,输出方式) 顺序存取 直接存取 2,数据的两种存放形式 文本文件 二进制 ...

最新文章

  1. 提升tomcat服务器性能的七条经验
  2. 预处理_不锈钢锻件预处理的必要性
  3. 架构师之道:面向组件的Web架构设计
  4. 想知道你在网上的发言,被怎么分析么?
  5. MVC3"不允许启动新事务,因为有其他线程正在该会话中运行"错误解决方法
  6. php empty ,is_null ,isSet 对比
  7. 4.边缘光照的描边shader
  8. Entity Framework Core 软删除与查询过滤器
  9. RabbitMQ 拓展基础组件封装思路
  10. R语言分类算法之线性判别分析(Linear Discriminant Analysis)
  11. 2021大数据白皮书 附下载
  12. Matlab三次样条插值
  13. crontab 每天凌晨12点定时器_每天爆卖10000只生蚝!西安这家烧烤界扛把子,吃到凌晨2点都不尽兴!...
  14. 英语作文计算机国际会议开幕词,国际学术会议英文主持词
  15. PDF编辑器:Adobe Acrobat XI Pro
  16. 西安交通大学大学计算机考试题,西安交通大学17年3月课程考试《计算机应用基础》作业考核试题...
  17. 梯度下降法和最速下降法区别
  18. GNU的C++代码书写规范,C语言之父Dennis Ritchie亲自修订 (转)
  19. python workflow_如何用 Python 写 Alfred Workflow
  20. 创建alexa skill

热门文章

  1. java 对象和类
  2. 数据结构之基于Java的顺序队列实现
  3. 嵌入式linux内核开启键盘,- 基于嵌入式Linux内核的特殊矩阵键盘设计完整驱动控制模块方案...
  4. pyqt怎么button怎么链接_SEO内部链接怎么优化
  5. [小心][注意][请转发]请检查你环境中的SSD磁盘!
  6. VMware NSX组件构建矩阵
  7. Java 学习总结(189)—— Java 8 功能接口使用总结
  8. python 北京大学陈斌教授_【慕课】Python 语言基础与应用(第2次开课)
  9. 反射获取类_新人也能看懂?如何使用 Java 反射?反射的用法及案例
  10. Java Concurrent--java.util.Concurrent包