Fortran 打印语句格式,空格过多

Fortran Print Statement formatting, too many white spaces

我正在写的 Fort运行 程序是将两个整数相加并求和,我必须将其打印为“4+5=9”,而 4 和 5 是用户输入。我 运行 在 print 语句中打印出太多不必要的空格的问题。所以我做了一些研究,然后找到了解决方案。但它一直告诉我 PRINT 语句中的语法错误,我不知道为什么以及如何。请帮我解决这种情况。谢谢

我使用了这个link提供的解决方案:Output formatting: too much whitespace in gfortran

PROGRAM SumProgram
IMPLICIT NONE

   !Define and initialize variables
   integer :: IntegerOne, IntegerTwo, Sum
   IntegerOne = 0
   IntegerTwo = 0
   Sum = 0

   !Prompt the user for inputs
   print *,' Enter the two Integers to be added together: '
   READ(*,*) IntegerOne, IntegerTwo

   !Do the Calculation
   Sum = IntegerOne + IntegerTwo

   PRINT (*, '(I0, "+", I0, "=", I0)') IntegerOne, IntegerTwo, Sum

END PROGRAM

我期待“4+5=9”的输出

您的语法适用于 WRITE 语句,但 PRINT 类似于

 PRINT '(I0, "+", I0, "=", I0)', IntegerOne, IntegerTwo, Sum

但我发现

 PRINT '(5g0)', IntegerOne, "+", IntegerTwo, "=", Sum

更容易阅读。 (如果不能用g0,就用'(i0,a,i0,a,i0)'。)

或者只是将 PRINT 换成 WRITE...我个人总是使用 write 并且只使用 print 来临时调试消息。这使它们很容易找到。

记住基本形式是

 PRINT *, "Hello"

对比

 WRITE(*,*) "Hello"

因此具有显式格式的表格必须符合它们。