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)'
?
答案 0 :(得分:1)
输出语句采用格式说明符,它控制显示项目的外观。输入语句还使用格式来控制输入的解释。
在print
版本的输出中(与write
比较)格式说明符是(未引用的)逗号之前的部分。在所有形式的I / O中,格式可以通过以下三种方式之一指定:
*
(所谓的列表导向的 I / O); format
声明的标签; 问题中的表格是第三种。
格式规范的字符表达式由许多部分组成。这里的引号只是字符串的分隔符。
首先是强制性括号,导致最短格式规范'()'
(不打印任何内容)。
接下来是格式项,可能是:
格式项可能在它们之前有重复计数。
要回答问题,我只会考虑所引用格式规范的编辑和控制描述符。其他描述符的更多细节(以及这里的更多细节)和格式可以在其他地方找到新获得的搜索术语知识。
此处有两个编辑描述符:a
和i
。有一个控制描述符x
。
a
指定字符串的输出,i
指定整数。 i5
表示输出宽度为5(如果整数输出少于五位,则填充空白); a
导致宽度为输出的字符表达式的长度。
控制描述符x
插入空白。 2x
是一个空白,重复计数2:输出两个空格。
所以:第一行打印出三个字符串,它们之间有空格(这里也会出现变量中的任何尾随空格)。第二个打印阵列的八个整数元素,其中每个字段的宽度为五。
每个print
语句也会提供换行符。