Как добавить двойную вкладку в фортран? - PullRequest
2 голосов
/ 01 апреля 2019

Строка кода, подобная этой:

write(*,*) a,b

будет выводиться как a и b, разделенные одной вкладкой.Как я могу написать вывод с a и b, разделенными двумя вкладками?

Ответы [ 2 ]

3 голосов
/ 01 апреля 2019

Ваша строка обычно не будет содержать какой-либо символ табуляции, а будет содержать некоторое количество пробелов Если вам нужны два символа табуляции, вы должны использовать их код ASCII 9.

write(*,'(4g0)') a, achar(9), achar(9), b

Обратите внимание на явный формат '(4g0)', используемый для избежания нежелательных пустых символов. С дескриптором g0 он будет работать для любого типа a и b.

2 голосов
/ 01 апреля 2019

Символ не является частью набора символов Фортрана.Поэтому, когда вы добавляете его в исходный код, большинство компиляторов должны жаловаться [ Cfr.Раздел 3 Fortran 2008 Standard ].

Если вы хотите добавить его в свой вывод, вы должны создать символ запрошенного вида, который представляет этот конкретный символ.Для этого вы используете ACHAR(I [, KIND]), который преобразует код ASCII I в этот конкретный символ вида KIND или вид по умолчанию, если KIND не указано.Для -характера это будет выглядеть следующим образом:

ACHAR(9)

Другим способом, но менее предпочтительным, будет использование модуля ISO_C_BINDING, который определяет константу C_HORIZNTAL_TAB.Это представляет \t, символ типа C C_CHAR.Если C_CHAR=-1, константа преобразуется в ACHAR(9) [ Cfr.Раздел 15.2 Фортран 2008 Стандарт ]

См. Ответ Владимира с инструкциями.

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