数年前に 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 に感謝します!