Форматирование Fortran Print Statement, слишком много пробелов - PullRequest
0 голосов
/ 29 января 2019

Программа на Фортране, которую я пишу, состоит в том, чтобы сложить вместе два целых числа и получить сумму, я должен распечатать ее как «4 + 5 = 9», тогда как 4 и 5 - вводимые пользователем данные.Я столкнулся с некоторыми проблемами печати слишком большого количества ненужных пробелов в операторе печати.Поэтому я провел некоторые исследования, а затем нашел решение.Но он постоянно говорит мне, что синтаксис в выражении 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

Я ожидаю вывод "4 + 5= 9"

1 Ответ

0 голосов
/ 29 января 2019

Ваш синтаксис хорош для оператора WRITE, но PRINT похож на

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

, но я считаю

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

более легким для чтения.(Если вы не можете использовать g0, используйте '(i0,a,i0,a,i0)'.)

Или просто замените PRINT на WRITE ... Лично я всегда использую запись и использую печать только для временных сообщений отладки,Это облегчает их поиск.

Помните, что основными формами являются

 PRINT *, "Hello"

против

 WRITE(*,*) "Hello"

, поэтому формы с явным форматом должны соответствовать им.

...