fortran fortran中文资料网
手气不错
Article

038.formatPositioning_格式定位与换行

2026年8月27日基础级

格式化输出会在一条记录中维护当前位置。T按列号定位,X/TL/TR相对当前位置移动,斜杠则结束当前记录并从下一行继续。

移动规则

  • Tn直接定位到当前记录的第n列,与此前写入了多少字符无关。
  • nXTRn都从当前位置向右移动n列;TLn从当前位置向左移动n列。
  • /开始一条新记录,终端输出时通常表现为换行。

本文代码

! X、T、TL、TR和斜杠控制记录中的位置与换行。
program formatPositioningDemo
  implicit none

  print "(A)", "12345678901234567890"
  print "(T2,A,T12,A)", "left", "right"
  print "(A,3X,A,TR2,A)", "A", "B", "C"
  print "(T10,A,TL9,A)", "B", "A"
  print "(A,/,A)", "first line", "second line"
end program formatPositioningDemo

编译运行

(base) hong@hongdeMacBook-Pro 038.formatPositioning % gfortran -Wall -Wextra -std=f2018 exampleFormatPositioning.f90
(base) hong@hongdeMacBook-Pro 038.formatPositioning % ./a.out
12345678901234567890
 left      right
A   B  C
 A       B
first line
second line

现象分析

第一行是列号标尺。下一行中,T2left放在第2列;随后T12直接把right放到第12列。

第三行先写A,3X向右跳过3列后写B,TR2再向右移动2列后写C。两种描述符都执行相对右移。

第四行先用T10在第10列写B;写完后当前位置来到第11列,TL9退回第2列写A。最后一条格式中的斜杠使一次print产生两条记录。

核心知识点

  • Tn使用从1开始的绝对列号;nX/TLn/TRn使用相对移动量。
  • nXTRn都向右移动,TLn向左移动。
  • 斜杠切换输出记录,可以让一个格式生成多行内容。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注