24小时热门版块排行榜    

查看: 1265  |  回复: 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 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 304求调剂 +5 素年祭语 2026-03-15 5/250 2026-03-16 17:00 by 我的船我的海
[考研] 本人考085602 化学工程 专硕 +12 不知道叫什么! 2026-03-15 14/700 2026-03-16 16:45 by 我的船我的海
[考研] 304求调剂 +6 小熊joy 2026-03-14 6/300 2026-03-16 12:59 by Iveryant
[考研] 材料与化工一志愿南昌大学327求调剂推荐 +7 Ncdx123456 2026-03-13 8/400 2026-03-16 12:15 by karry wen
[考研] 290求调剂 +5 孔志浩 2026-03-12 10/500 2026-03-16 09:01 by 余晖&
[考研] 求老师收留调剂 +4 jiang姜66 2026-03-14 5/250 2026-03-15 20:11 by Winj1e
[考研] 294求调剂 +3 Zys010410@ 2026-03-13 4/200 2026-03-15 10:59 by zhq0425
[考研] 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
[考研] 290求调剂 +4 @将就将就看 2026-03-10 8/400 2026-03-14 14:23 by 千千运气
[考研] 327求调剂 +4 Ffff03 2026-03-10 4/200 2026-03-14 00:17 by JourneyLucky
[考研] 工科,求调剂 +3 我887 2026-03-11 3/150 2026-03-13 21:39 by JourneyLucky
[考研] 332求调剂 +3 Zz版 2026-03-13 3/150 2026-03-13 20:36 by 18595523086
[考研] 307求调剂 +5 超级伊昂大王 2026-03-12 5/250 2026-03-13 15:56 by 棒棒球手
[考研] 0817化学工程与技术考研312分调剂 +3 T123 tt 2026-03-12 3/150 2026-03-13 10:49 by houyaoxu
[考研] 290求调剂 +3 ADT 2026-03-13 3/150 2026-03-13 10:19 by peike
[考研] 085600 材料与化工 295 求调剂 +10 dream…… 2026-03-10 12/600 2026-03-12 13:46 by dream……
[考博] 读博申请 +5 感dd 2026-03-10 7/350 2026-03-11 17:02 by QGZDSYS
[考研] 279求调剂 +3 莫xiao 2026-03-10 4/200 2026-03-11 08:06 by 斩魂滴兔子!
[考研] 085602化工求调剂 +7 董boxing 2026-03-10 7/350 2026-03-10 17:07 by BruceLiu320
信息提示
请填处理意见