0

在我目前用 Fortran90 编写的一个简单测试例程中,字符串输出比屏幕长。当使用标准的 write( , ) 语句时,输出不是简单地添加一个新行并继续下一行,而是在继续输出之前添加第二个换行符。

示例代码:

write(*,*) "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"

英特尔 Visual Fortran Composer XE 2013 SP1 输出:

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

为什么会这样?这个额外的换行符是从哪里来的?

4

1 回答 1

0

通过使用列表导向的输出,您*在语句的参数中使用第二个write,您可以将输出格式的精确控制交给编译器编写者的突发奇想。以特定格式夺回控制权,例如write(*,'(a128)')(将 128 替换为适合您要编写的字符串长度的任何内容)。看看会发生什么。

学习使用该repeat函数来处理重复的字符串可能会很有趣。

于 2016-04-26T20:05:33.867 回答