gpt4 book ai didi

c - 如何在 C 中读取 fortran 二进制文件?

转载 作者:行者123 更新时间:2023-12-03 23:55:35 29 4
gpt4 key购买 nike

我有一个由 fortran 代码生成的二进制文件。该文件包含一个 double 数组。我需要在我的 C 程序中打开它,然后像处理通常的数组一样使用它。

我该怎么做?

二进制文件中如何表示double类型?

最佳答案

几乎所有 Fortran 编译器,对于无格式(即二进制)顺序文件,都会在每条记录的开头和结尾写入记录的长度。通常长度以四个字节写入,但有些编译器使用八个字节。记录是使用单个 Fortran write 语句编写的所有内容。如果这个数组是用单个 Fortran write 语句用这种类型的文件编写的,那么你有四个或八个字节要跳过,然后是数组,然后是四或八个额外的字节。您可以通过使用十六进制编辑器查看文件来解决这个问题。如果数组是用多个 write 语句分段(例如,按列或按行)写入的,则每条记录都将具有此结构。

如果文件由 Fortran 编写为未格式化,则 Fortran double 类型以该计算机的二进制表示形式编写。您应该能够在相同类型的计算机上用 C 语言阅读它。如果您正在更改架构而不仅仅是语言,则二进制表示可能会有所不同。

Fortran 有其他不包括记录长度信息的文件访问方法。例如直接访问。流访问的新方法旨在实现语言间兼容性。

如果数组是多维的,您可能需要转置它,因为 Fortran 具有列优先数组,而 C 使用行优先。

相关问题:Fortran unformatted file formatreading fortran unformatted file with python

关于c - 如何在 C 中读取 fortran 二进制文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15190092/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com