24小时热门版块排行榜    

查看: 869  |  回复: 9

lchunmei001

木虫 (正式写手)


[交流] 【求助】输入是什么?

请教一下大家,如下这样一个输入片段,到底输入文件应该如何命名?运行总是没有输出。请路过高手帮解答解答,感激不尽!
C--->  INPUT EXPERIMENTAL DATA
       WRITE(*,*)'elem ?'
       READ(*,'(A2)')elem
       WRITE(FILM1,'(4A,2A,3A)')'ab-',elem,'.IN'
       OPEN(1,FILE=FILM1,status='old')
       READ(1,*)
       READ(1,*)
       READ(1,*)a,b,c,d,e,f,g,h
      ..........
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

» 抢金币啦!回帖就可以得到:

查看全部散金贴

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
lchunmei001(金币+10): 2011-04-14 08:55:47
引用回帖:
Originally posted by lchunmei001 at 2011-04-13 20:54:37:
请教一下大家,如下这样一个输入片段,到底输入文件应该如何命名?运行总是没有输出。请路过高手帮解答解答,感激不尽!
C--->  INPUT EXPERIMENTAL DATA
       WRITE(*,*)'elem ?'
       READ(*,'(A2)') ...

你这里都是在读取数据,没有输出啊……

C--->  INPUT EXPERIMENTAL DATA
       WRITE(*,*)'elem ?'
上面这行是在屏幕上输出 elem 这样的字符
       READ(*,'(A2)')elem
这里是读入一个长度为2的字符串,即你给 elem 的值
       WRITE(FILM1,'(4A,2A,3A)')'ab-',elem,'.IN'
这里是给一个字符串 film1 赋值,它最终的值是是ab-??.IN,其中??是上一步获得的。但这里好象有点儿问题,应该是'(3A,2A,3A)',也可能是后面 'ab-' 这儿有问题。
       OPEN(1,FILE=FILM1,status='old')
这是打开一个名为 film1,即 ab-??.IN 的文件
       READ(1,*)
读入一行,但其值不被使用
       READ(1,*)
同上
       READ(1,*)a,b,c,d,e,f,g,h
为 a, b, c, d, e, f, g, h 赋值,这些值来自于上面的那个打开的文件……

其实,随便找一本 Fortran 的书,看 I/O 部分的讲解即可……
2楼2011-04-13 22:02:01
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
注意下面这句没有输出的,虽然用的是 write 函数……

WRITE(FILM1,'(4A,2A,3A)')'ab-',elem,'.IN'
3楼2011-04-13 22:05:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dingxb

金虫 (正式写手)


lchunmei001(金币+10): 2011-04-14 08:55:54
引用回帖:
Originally posted by lchunmei001 at 2011-04-13 20:54:37:
请教一下大家,如下这样一个输入片段,到底输入文件应该如何命名?运行总是没有输出。请路过高手帮解答解答,感激不尽!
C--->  INPUT EXPERIMENTAL DATA
       WRITE(*,*)'elem ?'
       READ(*,'(A2)') ...

在下不才斗胆来说两句。

细观Lz的代码,惊奇的发现,这段代码写的真的挺值得学习的。

1 C--->  INPUT EXPERIMENTAL DATA
2      WRITE(*,*)'elem ?'
3       READ(*,'(A2)')elem
4       WRITE(FILM1,'(4A,2A,3A)')'ab-',elem,'.IN'
5       OPEN(1,FILE=FILM1,status='old')
6      READ(1,*)
7       READ(1,*)
8       READ(1,*)a,b,c,d,e,f,g,h


简单的来看,楼主需要输入的如下形式的东西。假设楼主的输入文件名为,ab-AA.IN.
则,lz在该程序中仅需输入“AA”, 这样应该可以保证没有问题。

实际上正如snoopyzhao 兄所说,语句4其本质就是一个字符串运算,而且他也指出,这里可能对于"ab-"的格式描述符"4A" 有问题。建议作者,仔细调试这一段,最简单的,可以在4后加上输出,看看是否有问题。

同时可以在open这里加上是否成功打开文件的判断标志。
4楼2011-04-14 08:00:43
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lchunmei001

木虫 (正式写手)


正如楼上两位所说,我按后面需要输入的东西,构建了一个名为ab-??.IN的输入,其中??是在屏幕上输出 elem?后输入的字符。这样运行后没有任何输出文件?由于程序太长,输出在后面,我主要是想知道我的输入方法对没?

确实有可能是'(3A,2A,3A)'这里的问题,我再试试看。
5楼2011-04-14 09:03:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lchunmei001

木虫 (正式写手)


刚试了一下改变'(3A,2A,3A)',不行啊!
6楼2011-04-14 09:24:22
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

小木虫(金币+0.5):给个红包,谢谢回帖交流
lchunmei001(金币+5): 2011-04-14 14:26:29
你的程序提示错误了没有?如果没有的话,为什么说不行呢?如果提示错误,最好把错误信息给出来。

另外,判断是否读了文件,可以在 read 后加一行 write……

比如

READ(1,*)a,b,c,d,e,f,g,h
write(*,*) a,b,c,d,e,f,g,h
7楼2011-04-14 10:39:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dingxb

金虫 (正式写手)



小木虫(金币+0.5):给个红包,谢谢回帖交流
lchunmei001(金币+5): 2011-04-14 14:26:35
建议先检查一下你的ab-??.IN文件是否存在,如果存在,是否数据是从第三行开始。

如果open出错的话,程序应该会终止运行的,So如果程序没有终止运行,则open应该是没错。
8楼2011-04-14 10:43:38
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
ben_ladeng(金币+2): 谢谢指点 2011-04-14 12:23:12
lchunmei001(金币+5): 2011-04-14 14:26:40
引用回帖:
Originally posted by lchunmei001 at 2011-04-14 09:24:22:
刚试了一下改变'(3A,2A,3A)',不行啊!

这个其实不影响的,我这里有一个小测试程序,你可以看一下:
CODE:
program test
implicit none
character (len=2) :: elem
character (len=9) :: film1
real :: a,b,c,d,e,f,g,h

WRITE(*,*)'elem ?'
READ(*,'(A2)')elem
WRITE(FILM1,'(4A,2A,3A)')'ab-',elem,'.IN'
write(*,*) film1
OPEN(1,FILE=FILM1,status='old')
READ(1,*)
READ(1,*)
READ(1,*)a,b,c,d,e,f,g,h
write(*,*) a,b,c,d,e,f,g,h

end program test

ab-55.IN 的内容如下:
CODE:
blank line
blank line
1 2 3 4.2 5 6 7 8.3
blank line

下面是运行的过程:
CODE:
D:\>a
elem ?
55
ab-55.IN
   1.0000000       2.0000000       3.0000000       4.1999998       5.0000000
   6.0000000       7.0000000       8.3000002

9楼2011-04-14 10:51:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lchunmei001

木虫 (正式写手)


谢谢大家,试了试大家所说的,错误确实不应该是这前面部分,应该是程序后半部分哪里出问题了,我自己先看看。程序较长,实在不好意思贴出来让大家帮找错!感谢各位热心的虫子!
10楼2011-04-14 14:25:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 lchunmei001 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见