我正在使用FORTRAN 90通过构建二进制表达式树来计算表达式.我已经为post_order_traversal创建了一个子例程,并希望格式化一个write语句来输出结果而不会前进到下一行.这是我到目前为止:
Print*, 'The Postfix Expression:'
Write(101,*) tempPOinter%exp
101 Format (1x, A3, Advance='no')
1
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试编译时,我收到一条错误,上面写着"格式说明符D在(1)处需要正宽度.如果有人知道这意味着什么或如何修复它,我将非常感谢您的帮助!谢谢.
首先,您已将格式行号放入单元位置.我想你想要的更像是
write(*, 101) tempPOinter%exp
Run Code Online (Sandbox Code Playgroud)
其次,advance=no参数需要放在write语句中,如下所示:
write(*, 101, advance="no") tempPOinter%exp
101 format(1X, A3)
Run Code Online (Sandbox Code Playgroud)
你也可以将所有内容放在一行:
write(*, '(1X, A3)', advance='no') tempPOinter%exp
Run Code Online (Sandbox Code Playgroud)
对于它的价值:当它试图解释你的格式声明时出现错误:
101 Format (1x, A3, Advance='no')
Run Code Online (Sandbox Code Playgroud)
1X - 一个空间A3 - 3个字母的字符串A - 任意长度的字符串d - 双精度浮点数 - 需要长度和多少位数!错误!| 归档时间: |
|
| 查看次数: |
528 次 |
| 最近记录: |