24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1368  |  回复: 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的回帖

sunbit

铁虫 (小有名气)

主程序由   READ(10,*) A(I)
改为   READ(10,“(A)”) A(I)
之后,程序通过


由此,产生两个疑问,
1. txt格式的数据,只能作为字符型读入?读入后怎么转变为实数型的?用real()函数?编译通不过

2.如何才能直接读入txt中 实数型的数据?txt中输入的数据有格式要求?
2楼2011-04-22 23:16:36
已阅   回复此楼   关注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的回帖

whl2dxl

木虫 (小有名气)

【答案】应助回帖

★ ★
微尘、梦想(金币+2): 谢谢参与…… 2011-04-24 17:57:14
你的那个程序的第7到第9行,是点还是逗号?如果是逗号的话肯定会出现数据类型定义的错误,正如你说的改成字符型就可以读取,可能就是这个原因,最后三行不是real型。如果想读这种混合的类型最好做两次do循环比较稳妥一点。即
real :: A(6),B(3)
do i=1,6
read(10,*) A(i)
end do
do i=7,9
read(10,*) A(i),B(i)
end do
4楼2011-04-24 00:45:42
已阅   回复此楼   关注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的回帖

whl2dxl

木虫 (小有名气)

【答案】应助回帖

引用回帖:
Originally posted by snoopyzhao at 2011-04-24 15:06:07:
他那种读法,只管读数的个数,与多少行没有关系……

第七行到第九行是一个数吗?那是个逗号,还是个点?
6楼2011-04-24 18:14:44
已阅   回复此楼   关注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的回帖

sunbit

铁虫 (小有名气)

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

那个是逗号,本来是不同行不同语句的

我调试为了简单就用了循环
8楼2011-04-25 10:08:47
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sunbit

铁虫 (小有名气)

引用回帖:
Originally posted by snoopyzhao at 2011-04-24 19:59:20:
逗号就表示是两个数,点的话就表示一个数。他的程序一行只读一个数,呵呵……

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

其实它写成这样可能更高效,也更合理一些……

[code]
read(10, *) (a(i), i=1,9)
[/c ...

谢谢啊,这样确实高效

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


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

我如果想直接读入实实数型的 应该怎么办?
9楼2011-04-25 10:10:52
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sunbit

铁虫 (小有名气)

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

我如果 全都是 实数型的,

怎么能直接读入后 就是实数型的数据呢? 如果无法做到,读入字符型的,怎么转换为实数型的呢?谢谢啊
10楼2011-04-25 10:12:43
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 sunbit 的主题更新
信息提示
请填处理意见