9

数年前に Fortran77 を簡単に紹介した後、Fortran90 を学んでいます。Fortran で整数を出力する場合、整数を出力するために確保するスペースの数を指定する必要があります。このプログラムを検討してください...

implicit none

integer :: i
i = 123

write(*, '(A, I3, A)')  "'", i, "'"  !3 spaces for output = no padding
write(*, '(A, I5, A)')  "'", i, "'"  !5 is too many, so output is padded
write(*, '(A, I2, A)')  "'", i, "'"  !2 is too few, so output is jibberish
write(*, '(A, I:, A)')  "'", i, "'"  !Default behavior

end program

...次の出力が生成されます。

'123'
'  123'
'**'
'         123'

整数の桁数がわからない場合、整数印刷用に正しい量のスペースを割り当てるにはどうすればよいですか?

更新: コンパイラが F95 に準拠している場合は、I0編集記述子を使用できます (つまり、上記の例'(A, I0, A)'の関数の 2 番目の引数に配置しwriteます。@janneb に感謝します!

4

1 に答える 1

12

I0編集記述子を使用します。ええと、Fortran 95である衒学的なIIRCであるために、もしあなたが本当にF90以下について厳密であるなら、これはうまくいかないと思います。

于 2011-01-21T17:54:20.267 に答える