24小时热门版块排行榜    

查看: 1588  |  回复: 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的回帖
★ ★ ★
余泽成(金币+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的回帖

zhaooming

新虫 (初入文坛)


可以看看这个

★ ★ ★
余泽成(金币+3):谢谢参与应助! 2010-12-31 16:39:38
onexf766(金币+4): xx! 2011-04-09 11:00:00
在附件中
3楼2010-12-29 09:31:52
已阅   回复此楼   关注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的回帖
相关版块跳转 我要订阅楼主 onexf766 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 欢迎发来filecode的Mz6后的代码验证其规律 +32 医学老男孩 2026-08-13 74/3700 2026-08-16 21:05 by 医学老男孩
[论文投稿] 岩土工程学报什么时候才能终审完呐 25+3 yeager111 2026-08-10 4/200 2026-08-16 20:42 by tfang
[基金申请] 时间戳又变了8-15 +13 archvillain 2026-08-15 25/1250 2026-08-16 20:13 by zhaosm1982
[基金申请] 2027广东省杰青 +3 奶牛小黑 2026-08-15 6/300 2026-08-16 20:07 by 奶牛小黑
[基金申请] 快农历七夕节了,轻松一下,男人悄悄话,女施主请不要进来。 +3 Tide man 2026-08-14 3/150 2026-08-16 17:47 by jurkat.1640
[基金申请] 哪位老哥知道今年的国自然具体哪一天放榜? +9 Ldrop2023 2026-08-13 9/450 2026-08-16 13:24 by wukun_007
[基金申请] filecode=后面第一个是大写字母 +6 wangze12014 2026-08-14 7/350 2026-08-15 20:12 by gltch
[基金申请] 关于Filecode分析方法 +10 majunge000 2026-08-10 13/650 2026-08-15 12:26 by hanpeng972
[基金申请] 是这周出结果还是下周出结果? +4 yuleib84 2026-08-11 4/200 2026-08-14 23:05 by lfy8008
[基金申请] 奇怪,两个人的filecode固定段从头到尾一模一样 +8 布布和一二 2026-08-10 11/550 2026-08-14 14:58 by Equinoxhua
[硕博家园] 读博的好处 +4 lnee 2026-08-11 4/200 2026-08-14 10:20 by ahsoarli
[基金申请] 重要来源:本周末出结果 +10 瞬息宇宙 2026-08-12 10/500 2026-08-13 15:46 by likettle
[基金申请] 不应该看fileCode +7 且听虎啸 2026-08-12 9/450 2026-08-13 14:27 by flydreamws
[基金申请] 结合人工智能,周易传统文化,filecode打分制来了,3分以上希望很大。 +3 Tide man 2026-08-12 4/200 2026-08-13 08:35 by ZJTJZ
[基金申请] 2019年青年基金涵评意见,大家看看几个A,几个B? +11 Tide man 2026-08-11 11/550 2026-08-13 07:35 by 撸猫猫
[基金申请] 帮忙看看fileCode +7 wwncly 2026-08-10 13/650 2026-08-11 19:36 by 冰心玉壶晴
[基金申请] 为什么网上很多人说本周 12号出结果 +6 瞬息宇宙 2026-08-10 7/350 2026-08-11 19:25 by Tide man
[基金申请] 什么时候出结果,有咨询渠道??? +3 Tide man 2026-08-11 3/150 2026-08-11 17:54 by kudofaye
[基金申请] 确定了,国自然21号放榜 +6 布布和一二 2026-08-10 7/350 2026-08-10 19:15 by 2000zf36392
[基金申请] 据悉今年马上要出结果了 +7 瞬息宇宙 2026-08-10 8/400 2026-08-10 12:42 by Vivilian
信息提示
请填处理意见