在上一篇文章中,小编为您详细介绍了关于《从二进制文件中读取字符并逆转 当文件字节很大时如何提高执行效率(c/c++实现)?java中是否有类似C++的std::cin那样省内存的读取控制台的办法》相关知识。本篇中小编将再为您讲解标题fgetc()等按字节读取文件的函数是咋区分读到的是255还是EOF的?c++/java中bool型变量在内存中占用多少内存。
②⑤⑤和EOF(-①)在存储器中是怎么存储的?这些读取文件的函数是怎么区分读到的是①个实际的字符②⑤⑤还是文件结束标志EOF?(或者说怎么区分④个②⑤⑤(char)和①个EOF(int)?)
---------------------------------
可能是提问的不够好吧,函数是如何得知文件已经读取结束的。
如果把问题想得更极端①点,如果现在是用格式化从文件中读取整数,如何判断读到的是实际的数值还是eof。
原来题主是想知道“系统怎么告诉fgetc”,而不是“fgetc怎么告诉应用程序”。这个问题还真不好回答呢。现代操作系统里的“文件”通常都是抽象的,无论是磁盘上具体的文件,还是①块内存、①整个磁盘区、①整张磁盘、①个网络接口等,都可以视为“①个文件”;不仅如此,磁盘上的文件在不同分区格式上存取方法也不尽相同。
==================
下面的回答偏题了
==================
有个重要细节是,fgetc的返回值是int型的。
int是④个字节的,它的EOF(-①)的补码表示为
①①①①①①①① ①①①①①①①① ①①①①①①①① ①①①①①①①①
而②⑤⑤的补码表示为
⓪⓪⓪⓪⓪⓪⓪⓪ ⓪⓪⓪⓪⓪⓪⓪⓪ ⓪⓪⓪⓪⓪⓪⓪⓪ ①①①①①①①①
是有区别的。
fgetc返回的虽是①个int,但有效的仅为最低的①个字节,而不是所有④个。
用过的centos是①个byte
编译器可以自己定义bool的长度,所以理论上是会有不同的
C++的bool的大小是impl-def,当然所有的实现bool的大小都是①。。
编后语:关于《fgetc()等按字节读取文件的函数是咋区分读到的是255还是EOF的?c++/java中bool型变量在内存中占用多少内存》关于知识就介绍到这里,希望本站内容能让您有所收获,如有疑问可跟帖留言,值班小编第一时间回复。 下一篇内容是有关《电脑开机没反应但是键盘灯亮是哪里出问题了?英特尔 第三代酷睿 i5-3470这个cpu算好么》,感兴趣的同学可以点击进去看看。
小鹿湾阅读 惠尔仕健康伙伴 阿淘券 南湖人大 铛铛赚 惠加油卡 oppo通 萤石互联 588qp棋牌官网版 兔牙棋牌3最新版 领跑娱乐棋牌官方版 A6娱乐 唯一棋牌官方版 679棋牌 588qp棋牌旧版本 燕晋麻将 蓝月娱乐棋牌官方版 889棋牌官方版 口袋棋牌2933 虎牙棋牌官网版 太阳棋牌旧版 291娱乐棋牌官网版 济南震东棋牌最新版 盛世棋牌娱乐棋牌 虎牙棋牌手机版 889棋牌4.0版本 88棋牌最新官网版 88棋牌2021最新版 291娱乐棋牌最新版 济南震东棋牌 济南震东棋牌正版官方版 济南震东棋牌旧版本 291娱乐棋牌官方版 口袋棋牌8399 口袋棋牌2020官网版 迷鹿棋牌老版本 东晓小学教师端 大悦盆底 CN酵素网 雀雀计步器 好工网劳务版 AR指南针 布朗新风系统 乐百家工具 moru相机 走考网校 天天省钱喵 体育指导员 易工店铺 影文艺 语音文字转换器