Re: [問題] 關於自動換行...
感謝 snowanimal 指教
我測試程式如下 執行OK
program test
implicit none
character*200 fmt
integer year,month,day,n,i
real var(4)
n=4
year=1990
month=6
day=12
do i=1,n
var(i)=i*12.3
enddo
open(2,file="test.txt")
write(*,"(1x,i4,a1,i2,a1,i2"//repeat(",a1,f7.2",n)//")") (接續下行)
year,"/",month,"/",day, (",",var(i),i=1,n)
stop
end
但是我用fmt作字串變數時
將程式改寫成
write(*,fmt) year,"/",month,"/",day, (",",var(i),i=1,n)
fmt="(1x,i4,a1,i2,a1,i2"//repeat(",a1,f7.2",n)//")"
卻會發生錯誤如下
run-time error F6981: WRITE(CON)
- initial left parenthesis expected in format
請問一下我是哪邊弄錯了呢?
※ 引述《redface (redfaCE)》之銘言:
: 抱歉
: 利用這串討論再發問一個問題
: 如果我今天是 輸出的變數個數不一定
: n為變數給定
: write(10,100) (var(i),i=1,n )
: 100 format(???)
: 這樣我format裡面要怎麼寫?
: 或是有其他方法可以處理?
: ※ 引述《DMFC (solebaby)》之銘言:
: : write 是有default 值~ (不過我不知道是啥Orz)
: : 就我的經驗
: : 大約是 f20.10 左右
: : 最長應是 128 字元
: : 也就是說.. 最多一行會 show 出四個實數
: : for example
: : dimension a(22)
: : write(*,*) a
: : 因沒指定 format ... fortran就用 default值
: : 於是得到
: : 0.0000000000 0.000000000 ......
: : 之類的
: : 此時就會出現.."四行寫完"的現象
: : 若不想要四行寫完
: : 那就給它format嘍
: : write(6,'(22f8.2)')
: : 這樣它就會把22個數字show出來
: : 注意長度
: : 再微調吧
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.207.34
※ 編輯: redface 來自: 140.112.207.34 (11/06 13:45)
→
11/07 10:05, , 1F
11/07 10:05, 1F
→
11/07 10:10, , 2F
11/07 10:10, 2F
→
11/07 10:10, , 3F
11/07 10:10, 3F
→
11/07 10:10, , 4F
11/07 10:10, 4F
→
11/07 18:22, , 5F
11/07 18:22, 5F
→
11/10 10:10, , 6F
11/10 10:10, 6F
討論串 (同標題文章)
Fortran 近期熱門文章
PTT數位生活區 即時熱門文章