print语句中引号中的字符

时间:2017-07-25 17:13:29

标签: fortran

fortran-95中datetime子例程的文档给出了数据和时间使用的示例。这是代码:

program test_time_and_date
    character(8)  :: date
    character(10) :: time
    character(5)  :: zone
    integer,dimension(8) :: values
    ! using keyword arguments
    call date_and_time(date,time,zone,values)
    call date_and_time(DATE=date,ZONE=zone)
    call date_and_time(TIME=time)
    call date_and_time(VALUES=values)
    print '(a,2x,a,2x,a)', date, time, zone
    print '(8i5)', values
end program test_time_and_date

在上面的代码段中,打印语句中单引号内的字符是什么,例如'(a,2x,a,2x,a, 8i5)'

1 个答案:

答案 0 :(得分:1)

输出语句采用格式说明符,它控制显示项目的外观。输入语句还使用格式来控制输入的解释。

print版本的输出中(与write比较)格式说明符是(未引用的)逗号之前的部分。在所有形式的I / O中,格式可以通过以下三种方式之一指定:

  • 使用*(所谓的列表导向的 I / O);
  • 使用format声明的标签;
  • 使用字符表达式(变量或常量)。

问题中的表格是第三种。

格式规范的字符表达式由许多部分组成。这里的引号只是字符串的分隔符。

首先是强制性括号,导致最短格式规范'()'(不打印任何内容)。

接下来是格式项,可能是:

  • 字符文字常量;
  • 编辑描述符;
  • 控制描述符;
  • 其他格式项的集合。

格式项可能在它们之前有重复计数

要回答问题,我只会考虑所引用格式规范的编辑和控制描述符。其他描述符的更多细节(以及这里的更多细节)和格式可以在其他地方找到新获得的搜索术语知识。

此处有两个编辑描述符:ai。有一个控制描述符x

a指定字符串的输出,i指定整数。 i5表示输出宽度为5(如果整数输出少于五位,则填充空白); a导致宽度为输出的字符表达式的长度。

控制描述符x插入空白。 2x是一个空白,重复计数2:输出两个空格。

所以:第一行打印出三个字符串,它们之间有空格(这里也会出现变量中的任何尾随空格)。第二个打印阵列的八个整数元素,其中每个字段的宽度为五。

每个print语句也会提供换行符。