作者snowanimal (依然动物先生)
看板Fortran
标题Re: [问题] 读取资料
时间Thu Nov 6 19:14:23 2008
※ 引述《redface (redfaCE)》之铭言:
: 标题: [问题] 读取资料
: 时间: Tue Nov 4 13:49:56 2008
: 想请教一下大家
: 在读取资料的时候
: 一般而言都会先设定好变数型态 (integer,real,character*5......等) 再去读入
: 不知是否有方法可以先读入资料 再作判别分类的
: 如下列一串数据(固定以空格区分)
: * 20.50 3.50 14.00 6.00 - - 18.00 * * * *
: 请大家赐教
:
: --
:
※ 发信站: 批踢踢实业坊(ptt.cc)
: ◆ From: 140.112.207.34
: → snowanimal:像这种 可以直接用 变数(100)去读 11/05 20:17
: → snowanimal:freeformat 其实处理起来并不困难 全部当real处理就好 11/05 20:17
: → redface:抱歉 还是不太了解 是指我不必宣告他的变数型态吗? 11/06 14:05
: → redface:dimension var(12) 11/06 14:06
: → redface:read(2,*) (var(i),i=1,12) 11/06 14:06
: → redface:我直接这样去读取还是不行 11/06 14:07
: → redface:执行後会出现 run-time error F6502: READ(test.txt) 11/06 14:08
: → redface: - positive integer expected in repeat field 11/06 14:08
这种方式用real(实数)去解决就好
real X(12) --假设你一行都是12个资料
read (22,*) (X(i),i=1,12) --直接吃12个资料进去
"理论"上这样就可以读了。
现在有个问题是这一串里面是不是都是"数字",
不然就要用另外一种方法去读。
里面出现一个 positive integer 的错误,所以资料格式上可能有问题。
有种方法可以检查
real X(12)
read (22,*) (X(i),i=1,12)
write (*,99) (X(i),i=1,12)
99 format(12f6.2) --格式请自定
每一行读入就立刻输出到萤幕上看看到底是什麽数值。
最好是把整个test.txt整理一下似乎会比较好啦 :p
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.229.101.191