24小时热门版块排行榜    

查看: 1258  |  回复: 3
本帖产生 1 个 程序强帖 ,点击这里进行查看
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

onexf766

木虫 (正式写手)


[交流] 【求助】从文件读入数组遇到困难

文件A中第一行有n个数,另一文件B中第一行有m个数。(其中n,m<100)
我要分别将上面的文件读入另一个文件C,我用下面的遇到困难:
INTEGER num1(100),num2(100)
OPEN (20,FILE="A.txt" )
OPEN (21,FILE="B.txt" )
OPEN (22,FILE="C.txt" )
READ(20,*)(numb1(i),i=1,n)
READ(21,*)(numb2(i),i=1,m)
WRITE(22,*)(numb(i),i=1,n)
WRITE(22,*)(numb(i),i=1,m)
END

现在的问题是读入的数据个数如果和数组的大小不等的话,就无法读入。
由于类似文件很多,不要人为的读入n或m的值,如何办?

想过用动态数组,也没能搞定。
INTEGER, allocatable::numb(; ! 声明动态数组,可以是多维的,类似a(:,:,
allocate(numb(50));        ! 给动态数组分配内存
numb(50)=1.0;              ! 操作和平常的数组一样
deallocate(numb);


请高手贴出具体的程序解决,诚盼!!!!!

[ Last edited by onexf766 on 2010-12-25 at 20:43 ]
回复此楼

» 猜你喜欢

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

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

查看全部散金贴

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
onexf766(金币+6): 非常谢谢!呵呵 2011-04-09 18:01:49
余泽成(程序强帖+1): 2011-04-20 22:43:28
引用回帖:
不错,能给解释下不?

CODE:
      PROGRAM MAIN
      CHARACTER*265 LINE
      INTEGER NUM1(100)
      OPEN (20,FILE="AA.TXT" )
      READ(20,'(A)')LINE
      READ(LINE, *, END = 20) (NUM1(I), I = 1,100)
20    CONTINUE      
      PRINT *, I
      WRITE(*,*) (NUM1(J), J = 1,I-1)
      END

这里关键的是下面两行
CODE:
      READ(20,'(A)')LINE
      READ(LINE, *, END = 20) (NUM1(I), I = 1,100)

第一行很容易理解,就是从文件中读入一行,以字符串的形式读入,由于你的一行中全部是数值,所以,我们可以用 Fortran 的内部文件机制解决数据的读取问题。这就是第二行的代码。在第二行中,LINE 不再是一个字符串,而是一个内部文件,这个文件的内容就是前一行读入的那个字符串。END 表示遇到文件尾部时的处理方式,在这里,遇到尾部就跳到标号为 20 的行。由于你问题中说到数据不超过 100,所以我就设了后面读入100个数,比如你的数据是 70 个,当读第 71 个数据时,其实已经是尾部了,因此,就直接跳到标号为 20  的行了……

大概就是这个样子的……
4楼2011-04-09 11:19:27
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 4 个回答
★ ★ ★
余泽成(金币+3):谢谢参与应助! 2010-12-31 16:39:29
onexf766(金币+20): 不错,能给解释下不? 2011-04-09 10:59:49
关于读数据的部分,可参考下面的代码:
CODE:
      PROGRAM MAIN
      CHARACTER*265 LINE
      INTEGER NUM1(100)
      OPEN (20,FILE="AA.TXT" )
      READ(20,'(A)')LINE
      READ(LINE, *, END = 20) (NUM1(I), I = 1,100)
20    CONTINUE      
      PRINT *, I
      WRITE(*,*) (NUM1(J), J = 1,I-1)
      END

2楼2010-12-25 22:24:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 机械专硕325,寻找调剂院校 +3 y9999 2026-03-15 4/200 2026-03-16 18:24 by 简之-
[考研] 333求调剂 +3 文思客 2026-03-16 7/350 2026-03-16 18:21 by 文思客
[考研] 0854控制工程 359求调剂 可跨专业 +3 626776879 2026-03-14 9/450 2026-03-16 17:42 by 626776879
[考研] 304求调剂 +3 曼殊2266 2026-03-14 3/150 2026-03-16 16:39 by houyaoxu
[考研] 321求调剂 +5 大米饭! 2026-03-15 5/250 2026-03-16 16:33 by houyaoxu
[考研] 070300化学学硕求调剂 +6 太想进步了0608 2026-03-16 6/300 2026-03-16 16:13 by kykm678
[考研] 290求调剂 +5 孔志浩 2026-03-12 10/500 2026-03-16 09:01 by 余晖&
[考研] 复试调剂 +3 呼呼?~+123456 2026-03-14 3/150 2026-03-14 16:53 by WTUChen
[考研] 【0703化学调剂】-一志愿华中师范大学-六级475 +5 Becho359 2026-03-11 5/250 2026-03-14 11:35 by 哦哦123
[考研] 材料080500调剂求收留 +3 一颗meteor 2026-03-13 3/150 2026-03-14 10:54 by peike
[基金申请] 有必要更换申报口吗 20+3 fannyamoy 2026-03-11 3/150 2026-03-14 00:52 by zhanghaozhu
[考研] 312求调剂 +6 陌宸希 2026-03-10 6/300 2026-03-14 00:40 by JourneyLucky
[考研] 308求调剂 +3 是Lupa啊 2026-03-10 3/150 2026-03-14 00:30 by JourneyLucky
[考研] b区环境工程求调剂 +4 Maps1 2026-03-10 6/300 2026-03-14 00:23 by JourneyLucky
[考研] 材料工程调剂 +9 咪咪空空 2026-03-12 9/450 2026-03-13 22:05 by 星空星月
[考研] 工科材料085601 279求调剂 +8 困于星晨 2026-03-12 10/500 2026-03-13 15:42 by ms629
[考研] 304求调剂(085602一志愿985) +12 化工人999 2026-03-09 12/600 2026-03-13 12:02 by JourneyLucky
[考研] 296求调剂 +3 大口吃饭 身体健 2026-03-13 3/150 2026-03-13 10:31 by 学员8dgXkO
[考研] 085602化工求调剂 +7 董boxing 2026-03-10 7/350 2026-03-10 17:07 by BruceLiu320
[硕博家园] 木虫好像不热闹了,是不是? +4 偏振片 2026-03-10 4/200 2026-03-10 09:51 by longwave
信息提示
请填处理意见