Fortran Print Statement格式化,空格太多

Jac*_*y.S 2 fortran gfortran fortran90

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

我使用了这个链接提供的解决方案:输出格式: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
Run Code Online (Sandbox Code Playgroud)

我期待"4 + 5 = 9"的输出

Vla*_*r F 5

你的语法对WRITE语句有好处,但PRINT就像

 PRINT '(I0, "+", I0, "=", I0)', IntegerOne, IntegerTwo, Sum
Run Code Online (Sandbox Code Playgroud)

但我发现

 PRINT '(5g0)', IntegerOne, "+", IntegerTwo, "=", Sum
Run Code Online (Sandbox Code Playgroud)

更容易阅读.(如果你不能使用g0,请使用'(i0,a,i0,a,i0)'.)

或者只是交换PRINTfor WRITE...我个人总是使用write并且只使用print来进行临时调试消息.它使它们很容易找到.

请记住,基本形式是

 PRINT *, "Hello"
Run Code Online (Sandbox Code Playgroud)

 WRITE(*,*) "Hello"
Run Code Online (Sandbox Code Playgroud)

所以具有显式格式的表单必须符合它们.