【发布时间】:2021-03-17 05:09:02
【问题描述】:
这是 .dat 文件 2000 x 2000,我正在尝试在 fortran 中读取 .dat 文件,我是 fortran 的初学者,并尝试了所有不同的方式来读取文件。当我运行该文件时,它给了我 Fortran 运行时错误:Bad real number in item 1 of list input error。如果有人可以向我解释一下,这是怎么回事?
我也检查了,我要读取的文件在当前目录中。
我必须在编译器中打印这个 .dat 文件。 我的代码中是否有任何小错误? 这是前三行的数据,它的图像数据
1.1300000E+02 1.1300000E+02 1.1300000E+02 1.1300000E+02 1.1300000E+02 1.1300000E+02 1.1500000E+02 1.1500000E 02 1.1600000e+02 1.1600000e+02 1.1600000e+02 1.1600000e+02 1.1600000e+02 1.1600000e+02
这里有两种不同的方法,我尝试获取数据,(我尝试了更多方法,但没有奏效,显示我尝试显示我最近尝试的方法)
program testpro
implicit none
!reads data from a file called mydata.dat
real :: i,j
open(unit=10,file='mydata.dat')
read(10,*) i,j
print *,i,j
end program testpro
program Test2
REAL :: mx,my,mz
doubleprecision, allocatable, dimension(:,:,:) :: B
integer :: i, j, k
read (*,*) mx,my,mz
open(10,file='mydata.dat',status='old')
read (10,*) mx,my,mz
allocate (B(mx,my,mz) )
read(10,*)(((B(i,j,k),i=1,mx),j=1,my),k=1,mz)
close(10)
end program Test2
【问题讨论】:
-
文件的前 30 个字符是什么?是二进制文件还是ascii?文件
mydata.dat真的存在吗? -
ascii 格式,数据中的几行看起来像这样 3.9200000e+04 3.9700000e+04 1.2400000e+04 6.6400000e+04
-
我也尝试使用此代码 (stackoverflow.com/questions/28082794/…),并给出与此代码相同的错误。错误:Fortran 运行时错误:列表输入中第 1 项的整数错误。
-
不要使用 cmets 获取重要信息。请edit您的问题并使用正确的格式。显示文本文件的确切形式。双重或三重检查文件是否确实位于应有的位置。如果没有,您的程序将改为创建一个空文件。
-
read (10,*) mx,my,mz要求读取具有要读取的数组形状的头部。您需要在文件中提供此标头,或删除该读数。#