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)'的第二个参数write。谢谢@janneb!

4

1 回答 1

12

使用 I0 编辑描述符。好吧,要成为 Fortran 95 的迂腐 IIRC,所以如果你真的严格要求不超过 F90,那么我想这将行不通。

于 2011-01-21T17:54:20.267 回答