Почему вывод выглядит черным? - PullRequest
0 голосов
/ 16 апреля 2020
  • Операционная система: Windows 10
  • Компилятор: XStart
  • Команда при запуске программы: pgf90 prgramname.f90
  • команда запуска программы: a. out

Код программы, которую я написал:

Program silta
implicit none
CHARACTER :: Str_1 = " For", Str_2 =" tran", z
z = Str_1 // Str_2 // " -90"
print *, z
end program silta

Когда я запускаю эту программу, результата нет, остается только черное пространство. Вероятно, результатом проблемы является Fortran-90, но как мне заставить его правильно печатать?

1 Ответ

2 голосов
/ 16 апреля 2020

Эта строка

CHARACTER :: Str_1 = " For", Str_2 =" tran", z

объявляет 3 символьные переменные, каждая из которых имеет длину. Таким образом, вы получаете str1 == " ", str2 == " " и z unset. Тогда эта строка

z = Str_1 // Str_2 // " -90"

интерпретируется как

z = " " // " " // " -90"

, но только первый символ, который является пробелом, попадает в z. И это то, что вы видите, когда распечатываете, или, скорее, это то, чего вы не видите, это просто пробел.

Go вернитесь к своему уроку по Фортрану и узнайте о длине символов, возможно, начните с

CHARACTER(len=8) :: Str_1 = " For", Str_2 =" tran", z

Как прокомментировал VladimirF, изучите также функцию c intrinsi trim для избавления от конечных пробелов в символьных переменных. Есть и другие полезные встроенные c строковые функции, достойные вашего исследования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...