我还想问一下,fortran中读入文件中的数组不知道长度,怎么读入啊!求助!

 我来答
天河流纹石
2013-12-02 · TA获得超过1.3万个赞
知道大有可为答主
回答量:7624
采纳率:76%
帮助的人:4047万
展开全部
如果你的文件是二进制文件,那么你可以获得文件大小 size,然后除以每个数据的长度,比如4字节或8字节。既可得到数据量。

如果你的文件是文本文件,且每行的数据个数是固定的,每行的长度也是固定的。也可以参照上面的方法。

如果你的文件是文本文件,但每行的数据个数不确定,或者每行的长度不一致。
那么有办法知道文件的行数,或者每一行分别的数据个数。总的数组,需要你自己去统计行数,或者每一行的数据量加起来就是总的数据量。

大多数情况下,你只需要知道行数,就可以确定数据量了。下面的函数可以获得文件的行数。

Integer Function GetFileN( iFileUnit )
Implicit None
Integer , Intent( IN ) :: iFileUnit
Character*(1) :: cDummy
GetFileN = 0
Rewind( iFileUnit )
Do
Read( iFileUnit , * , End = 999 , Err = 999 ) cDummy
GetFileN = GetFileN + 1
End Do
999 Rewind( iFileUnit )
Return
End Function GetFileN
更多追问追答
追问

我不太明白你的意思,我是指,比如我的读入文件是这种

但我不知道这有多少行,那我怎么从文件中读入存在数组当中,有时每行中的数据有空格,就是没数据又怎么读啊!

追答

有空格是正常的。空格表示数据的间隔。没空格反而不容易读。

你的数据麻烦在,有 / ,有 //////。

我不知道这样的数据格式意味着什么。你打算在数据处理时,如何对待这样的 ////// ?

这样不规则的数据,你打算读成一维数组,还是二维数组?

这决定了如何读取它们。


你有至少两种选择:

  1. 使用记事本或其他软件的替换功能。把 / 替换成空格。然后读起来就容易多了。

  2. 把数据按照行,每行按照字符串读入。然后分析其中的 / ,进行判断后读入。这样的方法会比较麻烦。

来自:求助得到的回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式