gpt4 book ai didi

c - 如何在 Fortran 中读取在 C 中可读的二进制文件

转载 作者:太空宇宙 更新时间:2023-11-04 02:57:15 24 4
gpt4 key购买 nike

我有一个二进制文件,我可以使用以下代码用 C 读取它

  int it,ix; 
double par1,par2,par3,par4,par5,par6;

fp = fopen("my_binary_file", "r");
assert(fp != NULL);
fscanf(fp, "%d %lf %lf %lf \n",&it, &par1, &par2, &par3);
fscanf(fp, "%d %lf %lf %lf \n",&ix, &par4 ,&par5,&par6);

我尝试用这段代码在 Fortran 90 中读取同一个文件

  real(kind=8):: par1,par2,par3,par4,par5,par6
integer :: it,ix

open(1,file='my_binary_file',form='unformatted')

read(1) it,par1,par2,par3
read(1) ix,par4,par5,par6

但是我收到文件结束错误。我试着一起读这两行

  read(1) it,par1,par2,par3,ix,par4,par5,par6

我读了一些东西,但参数不是我所期望的。这意味着我读取了错误的字节或者变量的声明是错误的。你觉得你能帮忙吗?

最佳答案

C端

1) 您的 C 二进制文件应该已打开为“rb”以进行二进制读取。2) fscanf 不用于读取二进制文件。它们通常使用 fread 读取。3) 如果有效,假设它是一个文本文件

在 Fortran 方面,4) 因为它是一个文本文件,所以表格应该是“FORMATTED”。5) Fortran 每次读取后,文件指针移动到下一行。这与 C 中的行为不同。6) 如果您不想弄乱格式语句,请使用自由格式读取来获取数据。

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

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