主题:请问如何从文件中读入一个大小未知的二维数组呢?
Hephaestus
[专家分:0] 发布于 2010-07-21 21:33:00
大家好,
问题是这样的,我想从一个.dat文件中读入一个行数和列数都未知的数组。不想用开大数组的方式,想先从文件中读出行数和列数的信息,再开辟相应大小的数组读数据。请问该如何操作。
水平很菜,望大家不吝赐教。
谢谢大家了。
回复列表 (共8个回复)
沙发
adda [专家分:1520] 发布于 2010-07-21 21:46:00
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)
板凳
Hephaestus [专家分:0] 发布于 2010-07-21 22:10:00
ls 好像没理解我的意思
我是想让计算机自动拾取 nx,ny(大小),而不是手动输入。
3 楼
asymptotic [专家分:16630] 发布于 2010-07-21 23:41:00
我写(类似楼主问题的)数据文件时,一般都会数组的规模,即楼上提到的 nx、ny,否则是自己害苦自个,何必呢?
4 楼
adda [专家分:1520] 发布于 2010-07-22 12:46:00
[quote]
ls 好像没理解我的意思
我是想让计算机自动拾取 nx,ny(大小),而不是手动输入。[/quote]
我写的就是自动拾取啊, nx,ny是从文件中输入的.
如果文件中没有nx,ny 的话, 计算机怎么判断呢?
例如,有12个数的话,怎么知道是3*4,还是6*2的数组?
5 楼
trimtrim [专家分:1640] 发布于 2010-07-22 14:11:00
写一个超级智能的程序很难的。
也没多大意义
6 楼
Hephaestus [专家分:0] 发布于 2010-07-23 18:49:00
谢谢大家了。
最近是有些忙了,也没有好好思考过这个问题,自己对这个问题都有点认识不清。等一段时间自己思考和实验过后再与大家讨论。
7 楼
天知道我演戏 [专家分:0] 发布于 2010-07-26 18:23:00
感谢webStudio提供源代码,转载请注明出处:梦想网络-flash网站模板,flash相册专题网站。
8 楼
YFLK [专家分:20] 发布于 2010-08-10 13:38:00
如果dat是一个文本文件你可以通过如下方法确定行列数(前题是保证数据是行列保存的):
先读入一行数据,通过数据分隔符确定列数,
然后用读入安符串的方法顺序读每行来确定行数。
我来回复