09/03/18 22:19:08
↑の結果
write(*,*) f
1.00000000000000 2.00000000000000 3.00000000000000
4.00000000000000 5.00000000000000
---
write(*,'(f)') f
1.0000000000000000
2.0000000000000000
3.0000000000000000
4.0000000000000000
5.0000000000000000
---
write(*,'(f\)') f
1.0000000000000000 2.0000000000000000 3.0000000000000000 4.0000000000000000 5.0000000000000000 ---
write(*,'(f)',advance='no') f
1.0000000000000000
2.0000000000000000
3.0000000000000000
4.0000000000000000
5.0000000000000000 ---
結論
①書式省略すると、適当な位置で改行してくれる(規格で決まってるんかな?)
②書式指定すると、書式の中身が終わる度に改行
③書式に\を付けると改行抑制
④書式にadvance='no'(デフォルトはyes)を付けるとwrite文が終了したときに行う改行を抑制(②との違いに注意)
って感じかな。
改行抑制の\と改行指定の/が混ざるとどんな出力になるんだろう。
528:デフォルトの名無しさん
09/03/18 22:20:24
ごめん、>>526は
real(8)::f(3)
do i=1,3 ; f(i)=i ; enddo
は↓に修正。
real(8)::f(5)
do i=1,5 ; f(i)=i ; enddo
529:デフォルトの名無しさん
09/03/22 01:30:43
>①書式省略すると、適当な位置で改行してくれる(規格で決まってるんかな?)
コマンドプロンプトの右端で改行だと思う
違うかなー
530:デフォルトの名無しさん
09/03/22 10:23:20
>>529
他のコンパイラでは改行しないので、コンパイラのせいだと思います。
>>524-528
ありがとうございます。
参考になりました。
write(*,'(f\)') f
が良さそうですね。
531:デフォルトの名無しさん
09/03/23 15:14:13
>>529
Fortranに限らず、プロンプトのサイズは関係ないよ