Re: [問題] 格式輸入問題

看板Fortran作者 (挨)時間12年前 (2012/02/21 03:48), 編輯推噓1(103)
留言4則, 2人參與, 最新討論串2/3 (看更多)
我不知道該怎麼解釋,所以直接打了一個例子給你參考,應該是你要的 關鍵就是format敘述裡的< >這個符號 要注意的是,這是我從INTEL FORTRAN編譯器的HELP找到的 所以不曉得<>這個符號是標準FORTRAN的用法還是INTEL編譯器自己的用法 因為INTEL的HELP裡,標準FORTRAN語法跟INTEL自己的特殊語法與函式庫都混在一起寫... 如果你不是用INTEL的編譯器,我不確定下面的CODE能不能用 PROGRAM main IMPLICIT NONE INTEGER*4::row,N REAL*8::xyz(3,100) CALL RANDOM_SEED() CALL RANDOM_NUMBER(xyz) DO row=1,100 N=INT(LOG10(DBLE(row)))+1 WRITE(*,"('AA',I<N>,<7-N>X,3(2X,E15.8))") row,xyz(:,row) ENDDO END PROGRAM main 輸出結果應該是 AA1 0.XXXXXXXXE+XX 0.XXXXXXXXE+XX 0.XXXXXXXXE+XX AA2 0.XXXXXXXXE+XX 0.XXXXXXXXE+XX 0.XXXXXXXXE+XX . ... ... ... . ... ... ... AA10 0.XXXXXXXXE+XX 0.XXXXXXXXE+XX 0.XXXXXXXXE+XX . ... ... ... . ... ... ... AA99 0.XXXXXXXXE+XX 0.XXXXXXXXE+XX 0.XXXXXXXXE+XX AA100 0.XXXXXXXXE+XX 0.XXXXXXXXE+XX 0.XXXXXXXXE+XX ※ 引述《sky770324 (Pony)》之銘言: : 請想問一下大家 : 假如我想寫一個檔案格式像是下列這樣: : AA1 x1 y1 z1 : AA2 x2 y2 z2 : AA3 x3 y3 z3 : AA10 x10 y10 z10 : AA100 x100 y100 z100 : 大概是像面那樣 AA代表是兩個字元,後面是我的編號(1~999) : 我想問一下如果想把上面那些寫進去檔案裡面 : 我是想要利用迴圈 : do row =1,100 : write(10,??)"AA",row,x1,y1,z1 : end do : x1 y1 z1 表示的是我想表達的座標 : 而AA是我的名稱,row是我的編號 : 因為座標我也要用固定的格式輸出 所以我不能再write內用free format來表達出 : AA1 : AA2 : AA10 : AA100 : 我有查過彭國倫寫的書,可是查不太到要用怎樣的format()格式 : 才可以一次表達最上面敘述的, : 我最多只能把它寫成下面這樣 : AA 1 x1 y1 z1 : AA 2 x2 y2 z2 : AA 3 x3 y3 z3 : AA 10 x10 y10 z10 : AA100 x100 y100 z100 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.218.94

02/21 03:51, , 1F
間距那些格式是我隨便打的,重點就是<>這符號的用法
02/21 03:51, 1F

02/21 04:05, , 2F
如果其他編譯器不能用<>這個符號
02/21 04:05, 2F

02/21 04:09, , 3F
上篇文章推文裡的方法我覺得也很簡單好用~可能比<>更好用
02/21 04:09, 3F
※ 編輯: callmei 來自: 140.112.218.94 (02/21 04:13)

02/21 10:12, , 4F
感謝分享~
02/21 10:12, 4F
文章代碼(AID): #1FGgE6eB (Fortran)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 3 篇):
文章代碼(AID): #1FGgE6eB (Fortran)