回 帖 发 新 帖 刷新版面

主题:程序运行结果是乱码。。求解决啊,急求啊

程序的目的就是判断两个文件每一行的前5个字符是不是一样,一样的话就把第一个文件的对应行和后一个文件对应行的后边几个字符放到一起保存。
program station_amsr_e

    implicit none
    integer,parameter:: s=722
    integer,parameter:: l=14981
    integer i,j,q,ifn
    character(len=80)  :: fn1(s),fn2(l),fn3(s),fn4(l)
    character(len=160)  :: sm(1,14981)
   open(100,file='E:\liang\data\lis\station.txt')
     do ifn=1,s
        read(100,'(a36)')fn1(ifn)   
     enddo
     close(100)
       open(200,file='E:\liang\data\lis\2003insitu-china.txt')
     do ifn=1,l
        read(200,'(a36)')fn2(ifn)    
     enddo
     close(200)


     do ifn=1,s
      fn3(ifn)=fn1(ifn)(1:5)
  enddo
     do ifn=1,l
      fn4(ifn)=fn2(ifn)(1:5)
  enddo
   
   do i=1,l
      print*,i
     do j=1,s
        if (fn4(i).eq.fn3(j)) then
            sm(1,i)=fn2(i)(1:25)//fn1(j)(6:17)
        !    else if (fn4(i).ne.fn3(j)) then
        !    sm(1,i)=fn2(i)(1:25)
        endif
      end do
    end do

      open(2,file='E:\liang\data\lis\jingweidu.txt')
        do q=1,14981
           
               write(2,*)sm(1,q)
      enddo
    close(2)



end program station_amsr_e
添加!之后的内容运行是第一个文件的内容,所以我觉得是        if (fn4(i).eq.fn3(j)) then
            sm(1,i)=fn2(i)(1:25)//fn1(j)(6:17)
有问题,求高手解答啊,我跟这个程序大眼瞪小眼瞪了两天拉。。。

回复列表 (共1个回复)

沙发

改为  if (fn4(i)(1:5).eq.fn3(j)(1:5)) then

我来回复

您尚未登录,请登录后再回复。点此登录或注册