freadf与二进制文件

看谭浩强《C程序计(第四版)》及网络搜索理解到的:

前面啰嗦一点对“文件”的初步理解:

文件根据逻辑结构分为流式文件,记录式文件
在程序设计中,主要用到两种文件:
(1)程序文件:包括源程序文件(.c)、目标文件(.obj)、可执行文件(.exe)等,这种文件的内容是程序代码
(2)数据文件:这种文件的内容是供操作系统读写的数据
以上两种文件均属于流式文件,这就得提到流式文件是个什么样的小贱人了:

总的来说,是没有结构的,由一连串字符组成的,需要穷举搜索,但是管理简单,适用于对基本信息操作不多的文件
以下是在CSDN找到的关于流式文件和记录式文件的详解(应该不会有人注意到我这个小小小小菜娘偷用他们的链接吧): https://blog.csdn.net/qi184/article/details/10197527 https://blog.csdn.net/haiross/article/details/46829875?utm_source=blogxgwz7 https://baike.baidu.com/item/流文件/10771029

本章主要讨论的是数据文件,

“文件”一般指存储在外部介质上数据的集合,操作系统管理数据是以文件为单位,处理数据时要找到对应的文件名
数据文件根据在外存上的存储方式的不同分为二进制文件和ASCII文件,因为数据在内存中以二进制形式存储,所以与外存上文件进行数据输入输出时可不加转换(二进制文件/也称映像文件)或者转换(ASCII文件)

二进制文件百度释义
https://baike.baidu.com/item/二进制文件/996661?fr=aladdin
计算机文件百度释义
https://baike.baidu.com/item/计算机文件/5687396

终于进入主题

fread读取二进制文件的数据
fread(buffer,size,count,fp);
在读入时不进行字符转换,按照数据块的长度即(count×size)将磁盘文件中的内容一批读入内存。
用fwirte同理。
总之是一整块有固定字节数的数据被读过来读过去,不管字符类型。
如果有字符转换,比如
struct student
{ char name[10];
int num;
}stu[n];
fread(stu[i],sizeof(struct student),1,stdin);
从终端键盘输入数据:zhangsan 18020032003
则空格也会存储到stu[i]中
结果很可能与原设想的情况不同

我好像太监了。
以后再更吧。。。

猜你喜欢

转载自blog.csdn.net/duxinyu_/article/details/85927589