回 帖 发 新 帖 刷新版面

主题:一个输出方面的问题


  有一个程序的输出数据约几万个,而且程序中输出语句在一个do循环中,即循环一次输出一个数,现在想把输出按行排,比如五个一行,如何办?

  其实我看核心问题就是怎样控制输出时的换行,比如连续输出四个([color=800000]四个写语句[/color])而不换行,第五个后再换到下一行。

回复列表 (共6个回复)

沙发

用advance="no"可不换行,一个小例子:

program MultiOutput
   implicit none
   integer :: i,n=10
   do i=1,n
      if ( mod(i,4).ne.0 ) then                 ! 每四个数换一行
         write(*,advance="no",fmt="(i5)") i     ! 输出数据,不换行
      else
         write(*,"(i5)") i                      ! 输出数据,换行
      end if
   end do
   stop
end program MultiOutput

板凳

mltx老师是用的fortran90吧,我一直想学,不知道和77差别大不大

3 楼

可以打开一个文件,用一个简单的格式输出控制就可以形成

4 楼

2楼:
f90中新增添的advance="yes"/"no"就是为了解决楼主这样的问题的。很直接,很好用。

f90是f77的换代语言,从f77学起来不难,但优势太多了。

5 楼

ok,我抓紧时间学,楼主这个问题应该用格式输出也很容易能解决

6 楼

格式输出解决不了把几个写语句写的结果写在一行(除非暂存起来后一块写)。否则,f90中就没有必要增加advance了。

我来回复

您尚未登录,请登录后再回复。点此登录或注册