当前位置: 首页 > 知识库问答 >
问题:

标准::字节的目的是什么?

麹权
2023-03-14

既然c 17有了< code>std::byte,我就在寻找一种方法,将读取文件到< code>char的代码转换成读取文件到< code>byte的代码。文件包含字节,而不是一堆整数。

然后我读了这个问题和另一个问题,人们认为把文件读入<code>字节</code>是错误的,把文件读进<code<char>是正确的。

如果< code>byte不是为了访问内存而设计的,那么它的目的是什么呢?正如在其他两个问题中引用的:

与char和unsigned char一样,它可以用于访问其他对象(对象表示)占用的原始内存,但与这些类型不同,它不是字符类型,也不是算术类型。字节只是位的集合,并且只为它定义了位逻辑运算符。

这听起来像是应该用于读取文件的确切类型,而不是字符。

共有1个答案

赵雅懿
2023-03-14

你也许误解了事情。

字节非常适用于“访问内存”。当存储只是一个字节序列而不是一个字符数组时,您打算使用该类型。

Iostream类型不能用<code>byte</code>进行专门化,因为它们是围绕字符作为接口设计的。也就是说,他们不认为文件是字节序列;他们认为它们是字符序列。现在,您当然可以通过使用一个或两个强制转换直接读取字节数组。但这不是iostream天生的想法。

您必须区分iostream的工作方式和文件的工作方式。Iostream毕竟只是一个文件IO库;它并不是文件API的最终目标。

大多数读取二进制数据的文件API采用< code>void*而不是字符数组。< code>std::fread/fwrite,等等。

也就是说,你应该认为这不是< code>std::byte的问题,而是iostream的问题。只是他们中的又一个。

 类似资料:
  • 统计指标 释义 访问量(IP) 一天之内您网站的独立访问IP数 页面浏览量(PV) 即PageView值,用户每打开1个网站页面,记录1个PV 用户多次打开同一页面PV累计多次 独立访客数(UV) UV即UniqueVistor,独立访客数,指1天内访问某站点的人数,以cookie为依据 1天内同一访客的多次访问只计为1个访客;不同浏览器访问累计+1;一旦清除浏览器缓存,UV将会刷新 新访客(NE

  • 问题内容: 在ICU项目(也现在有一个PHP库)中包含有需要帮助恢复正常UTF-8串类,使搜索时更容易地比较值。 但是,我试图弄清楚这对应用程序意味着什么。例如,在哪种情况下,我想要“规范对等”而不是“兼容性对等”,反之亦然? 问题答案: 规范化归一化 Unicode包括多种编码某些字符(最著名的是重音字符)的方法。规范化规范将代码点更改为规范编码形式。生成的代码点应与原始代码点相同,除非字体或渲

  • 自然,涉及不同标准化的不同组织或个人都会有某些不同的目的,尤其是在细节和优先级方面。此外,详细的目标总是随时间的改变而变动的。请记住,委员会做不到认同每个人的意见本身也是件好事——志愿者们的资源还是非常有限的。然而,这里已经有一套在实际探讨中使用着的规范,以此来确定那种特性或是库文件可适当的用C++0x中: 保持稳定和兼容性——不要打破旧代码,而如果你非打破不可的话,不要静静的做(注:应该是让做点

  • 问题内容: 我已经看到了几种用Python编写文档字符串的不同样式,是否有正式的或“同意的”样式? 问题答案: 格式 可以按照其他文章所示的几种格式编写Python文档字符串。但是,未提到默认的Sphinx文档字符串格式,该格式基于。你可以在此博客文章中获得有关主要格式的一些信息。 请注意,reST是PEP 287推荐的 以下是文档字符串的主要使用格式。 -Epytext 从历史上看,像Javad

  • 我正在尝试创建我的第一个Spring Boot应用程序。我在这里使用的是: 然而,eclipse抱怨说: 没有为此构建指定目标。您必须以

  • 我正在弄清楚如何使用Cocoapods,我发现了这个:pod install在cocoapods版本1.0.0.beta.1中显示错误 它说我必须写以下行:后面跟一些东西。但我对什么是我的“TargetName”感到困惑。 例如,此项目中的目标名称是什么: 或者,我在哪里可以找到我的项目的“目标”?我正在使用最新版本的Xcode。