我有,我可以使用C用下面的代码如何读取二进制文件,可读性于C,Fortran中
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例子中,你传递给'fscanf'的参数以'%'开始是格式说明符。在你的FORTRAN代码中,你告诉编译器它将读取的是UNFORMATTED - 你需要计算出FORTRAN格式指定符是什么,并将它们提供给FORTRAN代码中的open命令。 – MoonKnight