24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1376  |  回复: 14
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

sunbit

铁虫 (小有名气)

[求助] 郁闷了啊,最简单的读写,但是总报错,compaq visual fortran6.5

郁闷了啊,最简单的读写,但是总报错,compaq visual fortran6.5

报错内容
forrtl: severe (59): list-directed I/O syntax error, unit 10, file E:\matlab\lun
wen\fortran\dat1.txt
Image              PC        Routine            Line        Source
test.exe           00407B49  Unknown               Unknown  Unknown
test.exe           0040797B  Unknown               Unknown  Unknown
test.exe           00406B84  Unknown               Unknown  Unknown
test.exe           00406FB9  Unknown               Unknown  Unknown
test.exe           0040460B  Unknown               Unknown  Unknown
test.exe           00404023  Unknown               Unknown  Unknown
test.exe           0040110B  Unknown               Unknown  Unknown
test.exe           0042E5D9  Unknown               Unknown  Unknown
test.exe           00423DB4  Unknown               Unknown  Unknown
kernel32.dll       7C817077  Unknown               Unknown  Unknown

Incrementally linked image--PC correlation disabled.
Press any key to continue

主程序
CODE:
           program main

                REAL:: A(100)
                INTEGER::I,N
                N=9   
                OPEN(10,FILE='dat1.txt')
                DO I=1,N
                        READ(10,*) A(I)
                ENDDO
                CLOSE(10)
                END

dat1.txt文件
CODE:
2.5
0.25
1
0
1
6
0,0
1,0
1,1

回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snoopyzhao

至尊木虫 (职业作家)

【答案】应助回帖

★ ★
微尘、梦想(金币+2): 谢谢…… 2011-04-23 17:28:16
sunbit(金币+1): 只能给一分啊! 谢谢~ 2011-04-25 10:07:18
你的程序没有问题,我这里用 gfortran 测试通过,呵呵……
3楼2011-04-23 00:12:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snoopyzhao

至尊木虫 (职业作家)

★ ★
微尘、梦想(金币+2): 谢谢! 2011-04-24 17:57:29
引用回帖:
Originally posted by whl2dxl at 2011-04-24 00:45:42:
你的那个程序的第7到第9行,是点还是逗号?如果是逗号的话肯定会出现数据类型定义的错误,正如你说的改成字符型就可以读取,可能就是这个原因,最后三行不是real型。如果想读这种混合的类型最好做两次do循环比较稳 ...

他那种读法,只管读数的个数,与多少行没有关系……
5楼2011-04-24 15:06:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snoopyzhao

至尊木虫 (职业作家)

引用回帖:
Originally posted by whl2dxl at 2011-04-24 18:14:44:
第七行到第九行是一个数吗?那是个逗号,还是个点?

逗号就表示是两个数,点的话就表示一个数。他的程序一行只读一个数,呵呵……

我前面的说法错了,不好意思……

其实它写成这样可能更高效,也更合理一些……
CODE:
read(10, *) (a(i), i=1,9)

这样,就是所有的数据写在一行也没有关系了……
7楼2011-04-24 19:59:20
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snoopyzhao

至尊木虫 (职业作家)

引用回帖:
Originally posted by sunbit at 2011-04-25 10:10:52:
谢谢啊,这样确实高效

可惜只能给一人评分,我还以为都可以呢,再次 感谢


同时疑问:只能按 字符型 读入吗?怎么转换为实数型啊?

我如果想直接读入实实数型的 应该怎么办?

read(*,*) 是按浮点数,即 real 格式读入的,即使是 integer 也是按 real 读入的……
11楼2011-04-25 10:43:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snoopyzhao

至尊木虫 (职业作家)

引用回帖:
Originally posted by sunbit at 2011-04-25 10:12:43:
我如果 全都是 实数型的,

怎么能直接读入后 就是实数型的数据呢? 如果无法做到,读入字符型的,怎么转换为实数型的呢?谢谢啊

如果以字符型读入的话,用内部文件方式,还是可以转成 real 型的。语句与上面的没有太多的差别。
12楼2011-04-25 10:46:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snoopyzhao

至尊木虫 (职业作家)

引用回帖:
Originally posted by sunbit at 2011-04-25 11:42:33:
我试过 这个语句,总出错

我再试试,谢谢啊

给一个完整的示例吧,包括你的数据文件,你想要得到的结果,以及你自己的代码及出错信息……
15楼2011-04-25 13:01:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 sunbit 的主题更新
信息提示
请填处理意见