5
幾年前,我在對Fortran77進行簡要介紹後學習了Fortran90。在Fortran中打印整數時,您必須指定要爲打印整數保留多少個空格。考慮這個程序...fortran90中整數的智能打印
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`write`語句的參數是`fmt`參數,每個參數都包含3個編輯描述符。我的術語是cor RECT?所以是的,這個問題並不是關於如何使用描述符,而是關於在'I'之後放置什麼。我不能使用靜態字符串作爲格式,因爲我事先不知道字符串將會有多長。我是否正確理解您的響應,或者是否與「任何格式編輯描述符」不同,均爲「IO編輯描述符」? – 2011-01-21 19:44:53