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

时间:2019-01-29 15:12:29

标签: fortran gfortran fortran90

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

我使用了以下链接提供的解决方案: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”

1 个答案:

答案 0 :(得分:5)

您的语法适合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"

vs。

 WRITE(*,*) "Hello"

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