24小时热门版块排行榜    

查看: 1266  |  回复: 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 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 考研化学学硕调剂,一志愿985 +3 张vvvv 2026-03-15 5/250 2026-03-16 20:25 by 张vvvv
[文学芳草园] 伙伴们,祝我生日快乐吧 +17 myrtle 2026-03-10 26/1300 2026-03-16 18:32 by 青橙Ln
[考研] 327求调剂 +6 拾光任染 2026-03-15 11/550 2026-03-15 22:47 by 拾光任染
[考研] 求老师收留调剂 +4 jiang姜66 2026-03-14 5/250 2026-03-15 20:11 by Winj1e
[考研] 288求调剂 +4 奇点0314 2026-03-14 4/200 2026-03-14 23:04 by JourneyLucky
[考研] 材料工程327求调剂 +3 xiaohe12w 2026-03-11 3/150 2026-03-14 20:20 by ms629
[基金申请] 面上和青基一样限30页不合理 +5 wowsunflower 2026-03-10 7/350 2026-03-14 17:21 by kingkocxr
[考研] 307求调剂 +7 超级伊昂大王 2026-03-10 7/350 2026-03-14 00:49 by JourneyLucky
[考研] 材料工程专硕,一志愿中国矿业大学,总分314,求调剂 +5 无懈可击的巨人 2026-03-10 5/250 2026-03-14 00:37 by JourneyLucky
[考研] 招收0805(材料)调剂 +3 18595523086 2026-03-13 3/150 2026-03-14 00:33 by 123%、
[考研] 26考研调剂 +3 ying123. 2026-03-10 3/150 2026-03-14 00:18 by JourneyLucky
[考研] 332求调剂 +3 zjy101327 2026-03-11 6/300 2026-03-13 22:48 by JourneyLucky
[考研] 337一志愿华南理工0805材料求调剂 +7 mysdl 2026-03-11 9/450 2026-03-13 22:43 by JourneyLucky
[考研] 308求调剂 +5 是Lupa啊 2026-03-11 5/250 2026-03-13 22:13 by JourneyLucky
[考研] 求材料调剂 +5 隔壁陈先生 2026-03-12 5/250 2026-03-13 22:03 by 星空星月
[考研] 333求调剂 +3 球球古力 2026-03-11 3/150 2026-03-13 21:27 by JourneyLucky
[硕博家园] 085600 260分求调剂 +3 天空还下雨么 2026-03-13 5/250 2026-03-13 18:46 by 天空还下雨么
[考研] 295求调剂 +3 小匕仔汁 2026-03-12 3/150 2026-03-13 15:17 by vgtyfty
[考研] 085600材料与化工 309分请求调剂 +7 dtdxzxx 2026-03-12 8/400 2026-03-13 14:43 by jxchenghu
[考研] 085600 材料与化工 295 求调剂 +10 dream…… 2026-03-10 12/600 2026-03-12 13:46 by dream……
信息提示
请填处理意见