Fortran write 插入 2 个换行符 w
Fortran write inserts 2 newlines w
在我目前用 Fortran90 编写的一个简单测试例程中,字符串输出比屏幕长。当使用标准 write(,) 语句时,输出中不是简单地添加新行并在下一行继续,而是在继续输出之前添加第二个换行符。
示例代码:
write(*,*) "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
Intel Visual Fortran Composer XE 2013 SP1 输出:
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
这是为什么?这个额外的换行符来自哪里?
通过使用 list-directed 输出,你用 write
语句的参数中的第二个 *
来做,你放弃了对输出格式化到编译器作者的心血来潮。使用特定格式夺回控制权,例如 write(*,'(a128)')
(将 128 替换为适合您要写入的字符串长度的任何内容)。看看会发生什么。
学习将 repeat
函数用于重复字符串可能会让您觉得有趣。
在我目前用 Fortran90 编写的一个简单测试例程中,字符串输出比屏幕长。当使用标准 write(,) 语句时,输出中不是简单地添加新行并在下一行继续,而是在继续输出之前添加第二个换行符。
示例代码:
write(*,*) "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
Intel Visual Fortran Composer XE 2013 SP1 输出:
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
这是为什么?这个额外的换行符来自哪里?
通过使用 list-directed 输出,你用 write
语句的参数中的第二个 *
来做,你放弃了对输出格式化到编译器作者的心血来潮。使用特定格式夺回控制权,例如 write(*,'(a128)')
(将 128 替换为适合您要写入的字符串长度的任何内容)。看看会发生什么。
学习将 repeat
函数用于重复字符串可能会让您觉得有趣。