- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个由 fortran 代码生成的二进制文件。该文件包含一个 double 数组。我需要在我的 C 程序中打开它,然后像处理通常的数组一样使用它。
我该怎么做?
二进制文件中如何表示double类型?
最佳答案
几乎所有 Fortran 编译器,对于无格式(即二进制)顺序文件,都会在每条记录的开头和结尾写入记录的长度。通常长度以四个字节写入,但有些编译器使用八个字节。记录是使用单个 Fortran write 语句编写的所有内容。如果这个数组是用单个 Fortran write 语句用这种类型的文件编写的,那么你有四个或八个字节要跳过,然后是数组,然后是四或八个额外的字节。您可以通过使用十六进制编辑器查看文件来解决这个问题。如果数组是用多个 write 语句分段(例如,按列或按行)写入的,则每条记录都将具有此结构。
如果文件由 Fortran 编写为未格式化,则 Fortran double 类型以该计算机的二进制表示形式编写。您应该能够在相同类型的计算机上用 C 语言阅读它。如果您正在更改架构而不仅仅是语言,则二进制表示可能会有所不同。
Fortran 有其他不包括记录长度信息的文件访问方法。例如直接访问。流访问的新方法旨在实现语言间兼容性。
如果数组是多维的,您可能需要转置它,因为 Fortran 具有列优先数组,而 C 使用行优先。
相关问题:Fortran unformatted file format和 reading fortran unformatted file with python
关于c - 如何在 C 中读取 fortran 二进制文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15190092/
我是一名优秀的程序员,十分优秀!