fgetc()等按字节读取文件的函数是咋区分读到的是255还是EOF的?c++/java中bool型变量在内存中占用多少内存

发表时间:2017-12-28 21:48:02 作者: 来源: 浏览:

在上一篇文章中,小编为您详细介绍了关于《从二进制文件中读取字符并逆转 当文件字节很大时如何提高执行效率(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算好么》,感兴趣的同学可以点击进去看看。

资源转载网络,如有侵权联系删除。

相关资讯推荐

相关应用推荐

玩家点评

条评论

热门下载

  • 手机网游
  • 手机软件

热点资讯

  • 最新话题