2015-05-01 72 views
2

我正在使用FORTRAN 90通過構建二進制表達式樹來計算表達式。我爲post_order_traversal創建了一個子例程,並且想要格式化寫入語句以輸出結果而不會前進到下一行。這是我迄今:正寬度錯誤?

Print*, 'The Postfix Expression:' 

Write(101,*) tempPOinter%exp 

101 Format (1x, A3, Advance='no') 

              1 

然而,當我嘗試編譯,我得到讀取「在格式說明d所需的正寬度的錯誤(1)如果有人知道這意味着什麼或如何。要解決這個問題,我將不勝感激您的幫助! 感謝。

回答

7

首先,你已經把格式的行號到單元位置。我想你想要的東西更像是

write(*, 101) tempPOinter%exp 

其次,advance=no參數需要b Ë放在write聲明,就像這樣:

write(*, 101, advance="no") tempPOinter%exp 
101 format(1X, A3) 

你也可以把所有在一行:

write(*, '(1X, A3)', advance='no') tempPOinter%exp 

對於它的價值:當它試圖解釋你的格式語句的錯誤來了:

101 Format (1x, A3, Advance='no') 
  • 1X - 一個空間
  • A3 - 3字母串
  • A - 任意長度的字符串
  • d - 雙精度浮點數 - 需要的長度和多少個十進制數字!錯誤!