这样的代码行:
write(*,*) a,b
将会作为输出a
和b
并以一个制表符分隔。如何编写a
和b
由两个标签分开的输出?
答案 0 :(得分:3)
您的行通常不会产生任何制表符,但会产生一些空白(空格)字符。如果要使用两个制表符,则必须使用其ASCII码9。
write(*,'(4g0)') a, achar(9), achar(9), b
请注意用于避免不必要的空白字符的显式格式'(4g0)'
。借助g0
描述符,它将适用于任何类型的a
和b
。
答案 1 :(得分:2)
如果要将其添加到输出中,则必须创建一个
代表该特定字符的所请求种类的字符
字符。为此,您可以使用ACHAR(I [, KIND])
将ASCII代码I
转换为该特定类型的字符
KIND
;如果未指定KIND
,则为默认种类。为了
<tab>-character的内容为:
ACHAR(9)
另一种方法(但较不受欢迎)是利用
ISO_C_BINDING
模块,用于定义常量
C_HORIZNTAL_TAB
。这代表\t
,是
C字符类型C_CHAR
。如果C_CHAR=-1
,则转换常量
到ACHAR(9)
[Cfr. Section 15.2 Fortran 2008 Standard]
有关如何操作,请参见Vladimir's answer。