回 帖 发 新 帖 刷新版面

主题:请问如何从文件中读入一个大小未知的二维数组呢?

大家好,
   问题是这样的,我想从一个.dat文件中读入一个行数和列数都未知的数组。不想用开大数组的方式,想先从文件中读出行数和列数的信息,再开辟相应大小的数组读数据。请问该如何操作。
  水平很菜,望大家不吝赐教。   
  谢谢大家了。

回复列表 (共8个回复)

沙发

real, allocatable, dimension(:) :: array
integer Nx, Ny

open(1,file='1.dat')
read(1,*) Nx, Ny

allocate( array( Nx, Ny ) )

read(1,*) aray

close(1)

板凳


ls 好像没理解我的意思
我是想让计算机自动拾取 nx,ny(大小),而不是手动输入。

3 楼

我写(类似楼主问题的)数据文件时,一般都会数组的规模,即楼上提到的 nx、ny,否则是自己害苦自个,何必呢?

4 楼

[quote]
ls 好像没理解我的意思
我是想让计算机自动拾取 nx,ny(大小),而不是手动输入。[/quote]

我写的就是自动拾取啊, nx,ny是从文件中输入的.
如果文件中没有nx,ny 的话, 计算机怎么判断呢?
例如,有12个数的话,怎么知道是3*4,还是6*2的数组?

5 楼

写一个超级智能的程序很难的。
也没多大意义

6 楼


谢谢大家了。
最近是有些忙了,也没有好好思考过这个问题,自己对这个问题都有点认识不清。等一段时间自己思考和实验过后再与大家讨论。

7 楼

感谢webStudio提供源代码,转载请注明出处:梦想网络-flash网站模板,flash相册专题网站。

8 楼

如果dat是一个文本文件你可以通过如下方法确定行列数(前题是保证数据是行列保存的):
  先读入一行数据,通过数据分隔符确定列数,
然后用读入安符串的方法顺序读每行来确定行数。

我来回复

您尚未登录,请登录后再回复。点此登录或注册