Fortran Coder

标题: Fortran读取文本文件出错 [打印本页]

作者: 向着光亮    时间: 2018-1-4 21:55
标题: Fortran读取文本文件出错
如图所示,想用程序读取文本文件至指定格式,为什么按行读取了而读取的数字从第三列就不对了,尝试了很多次还是不对,忘大神指导!不甚感激!

QQ截图20180104215011.png (103.91 KB, 下载次数: 521)

QQ截图20180104215011.png

作者: kyra    时间: 2018-1-5 07:56
read(7,*) a(i,:)
作者: 向着光亮    时间: 2018-1-5 09:18
kyra 发表于 2018-1-5 07:56
read(7,*) a(i,:)

还是不行啊同学,现在又是这样的错误,这是什么原因

1.png (18.95 KB, 下载次数: 445)

1.png

2.png (4.01 KB, 下载次数: 446)

2.png

作者: kyra    时间: 2018-1-5 09:30
本帖最后由 kyra 于 2018-1-5 09:31 编辑

照抄你都不会吗?

read(7,*) a(i,:)

而不是
read(7,*) (a(i,:),j=1,13)




作者: 向着光亮    时间: 2018-1-5 09:53
kyra 发表于 2018-1-5 09:30
照抄你都不会吗?

read(7,*) a(i,:)

好吧,现在明白了
作者: 向着光亮    时间: 2018-1-5 09:56
kyra 发表于 2018-1-5 09:30
照抄你都不会吗?

read(7,*) a(i,:)

你好还是有问题,我能加你QQ详细说嘛,我是兰州大学研究生
作者: kyra    时间: 2018-1-5 12:29
可以加本论坛官方QQ群:2338021
作者: pasuka    时间: 2018-1-5 14:34
有open无close,自然会出错
作者: 向着光亮    时间: 2018-1-5 15:34
pasuka 发表于 2018-1-5 14:34
有open无close,自然会出错

并不是这个问题,请您仔细看问题,OPEN和close并没有直接绝对关系
作者: li913    时间: 2018-1-6 17:30
1、用表控格式读取;
2、文件中数据量不够。
作者: pasuka    时间: 2018-1-7 15:00
本帖最后由 pasuka 于 2018-1-7 15:04 编辑
向着光亮 发表于 2018-1-5 15:34
并不是这个问题,请您仔细看问题,OPEN和close并没有直接绝对关系

少年,有open无close这样的陋习,早晚会栽跟头!
Python有with关键字,光open就行,可惜fortran没有open的说明文档
https://docs.oracle.com/cd/E1995 ... j4m0vnaf/index.html
If you open a unit that is already open without specifying a file name (or with the previous file name), FORTRAN thinks you are reopening the file to change parameters. The file position is not changed. The only parameters you are allowed to change are BLANK (NULL or ZERO) and FORM (FORMATTED or PRINT). To change any other parameters, you must close, then reopen the file.
怎么能说没有关系呢?

作者: 向着光亮    时间: 2018-1-7 19:50
pasuka 发表于 2018-1-7 15:00
少年,有open无close这样的陋习,早晚会栽跟头!
Python有with关键字,光open就行,可惜fortran没有open的 ...

关键我加上close也没有用,还是从rean那里直接就end of file 了,这是怎么回事
作者: 向着光亮    时间: 2018-1-7 19:57
pasuka 发表于 2018-1-7 15:00
少年,有open无close这样的陋习,早晚会栽跟头!
Python有with关键字,光open就行,可惜fortran没有open的 ...

而且我打开的是有文件名的文件,只是读取数据出错了
作者: pasuka    时间: 2018-1-8 10:27
向着光亮 发表于 2018-1-7 19:57
而且我打开的是有文件名的文件,只是读取数据出错了

之前就有人指出了,数据量不够
截图一行只有12个数据,数据a有13数据
http://tpcg.io/1VGH45
[Fortran] 纯文本查看 复制代码
program hello
implicit none
character(len=255):: src
real(kind=4):: a(13)
a=0.0E0
src = "20.332 12.1 0.063 429.0 "
!! Not enough data
!read(src, *)a
!! 4 float number in src
read(src, *)a(1:4)
write(*, *)"a = ", a

end program Hello


作者: fcode    时间: 2018-1-11 18:18
出错不给错误提示,都是耍流氓。
作者: 向着光亮    时间: 2018-1-15 09:25
pasuka 发表于 2018-1-8 10:27
之前就有人指出了,数据量不够
截图一行只有12个数据,数据a有13数据
http://tpcg.io/1VGH45

已解决,thanks




欢迎光临 Fortran Coder (http://bbs.fcode.cn/) Powered by Discuz! X3.2