我是fortran的新手。
我使用 Microsoft Developer Studio 4.0 制作了一个程序来创建二进制文件。我打开它如下:
OPEN(2,FILE='output_bin.bin',FORM='UNFORMATTED')
我在里面写了一个数组INTEGER*2 IHIST(30)
,现在填充了从 0 到 29 的数字。写作是通过以下方式完成的:
DO 351 J=0,29
WRITE(2) IHIST(J)
351 CONTINUE
在 Windows 中,我可以读取生成的二进制文件。我可以恢复阵列。
然后我想在 Ubuntu 中阅读它。在这里,我遇到了问题:Fortran runtime error: End of file
当我执行以下操作时,我得到了:
INTEGER*2 RBIN(30)
WRITE(*,*)'Extracting data from binary file ', filename
OPEN(3,FILE=filename,FORM='UNFORMATTED',ACTION='READ'
+ ,STATUS='OLD')
DO 17 I=0,29
READ(3) RBIN(I)
17 CONTINUE
有人可以向我解释如何读取顺序的、未格式化的二进制文件。我究竟做错了什么?我认为下一次阅读的起始位置将是后者的结束。
我正在使用 GNU Fortran (Ubuntu/Linaro 4.7.2-2ubuntu1) 4.7.2 在 Ubuntu 12.04 中编译。