我有,我可以使用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