回 帖 发 新 帖 刷新版面

主题:如何用write输出二维数组???如何不自动换行???

我想输出200*200的数组,应该如何写才能够每行输出200行乘200列的格式???

回复列表 (共7个回复)

沙发

我也是初学,不知道这个能不能实现你想要的结果write(file,*)((a(i,j),i=1,200),j=1,200)

板凳

write(fid,'(200(F,X))')a

3 楼

这样写好像不对呀,写到三个也就换行了,不知道咋回事儿啊……

4 楼

楼主, 你看看是不是编辑器自动换行了? 严格来说换行有个换行符的.

5 楼

open (10,file='result.txt')
  print*, nl1,nm1
  do m=0,nl1
    do l=0,nm1
      write(10,"(F10.4)",advance='no') vx(l,m)
    enddo
    write(10,*)
  enddo
close(10)

我这样写了,貌似对了,的确自动换行了,但是载入origin时仍然是200乘200的,不过也不是到了第三列就换的……

谢谢各位……

6 楼

我试着这样写了,但是不对……不知道是不是别的地方错了??
……谢谢……

7 楼

[quote]open (10,file='result.txt')
  print*, nl1,nm1
  do m=0,nl1
    do l=0,nm1
      write(10,"(F10.4)",advance='no') vx(l,m)
    enddo
    write(10,*)
  enddo
close(10)

我这样写了,貌似对了,的确自动换行了,但是载入origin时仍然是200乘200的,不过也不是到了第三列就换的……

谢谢各位……
[/quote]
为什么不用二楼的方法改一改呢?
你的代码确实可以实现你想要的. 因为advance不设置的情况下,编译器一般默认是"yes", 在你一行"no"完之后就"yes"一次就相当于下一行写下一行数据.
不过通过格式控制来实现想要的输出格式跟简洁和高效.

我来回复

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