如何在没有换行的情况下打印多个值?
PRINT *, "foo:", foo, ", bar:", bar, ", baz:", baz
答案 0 :(得分:5)
write
语句提供了可选的advance
说明符,但print
没有。
可以在代码中的不同位置创建write
个advance="no"
个语句,以便将多个项目打印到同一行。举个例子,在do
循环中使用它:
do i=1,3
write(*, fmt="(1x,a,i0)", advance="no") "loop #", i
end do
write(*,*) ! Assumes default "advance='yes'".
write(*,*) "--OK, the loop is done!"
! Example output:
loop #1 loop #2 loop #3
--OK, the loop is done!
请注意advance
不能与列表导向输出一起使用(使用“*”来“打印任何东西”)。因此,我展示了一个示例格式说明符fmt="(1x,a,i0)"
,它将为每个write语句打印一个空格,一个字符串和一个整数。语言参考和/或编译器文档派上用场。例如,请参阅here。
正如其他人所说,如果这是理想的行为,最好使用write
。如果由于某种原因你仍然喜欢使用print
,那么你应该在打印之前将输出项组装成单个变量或变量列表。