Fortran Coder

输出一个很长的数据到文件的同一行

查看数: 9115 | 评论数: 9 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2021-9-15 14:31

正文摘要:

想将一个二维数组的一列数据输出到文件中的同一行,(数组见图,有19万多行) write(110, *)  points(:, 1) 但是代码执行后,确实按列的顺序输出了,在文件里却每隔6个数据自动换行。 查了一下度娘和书, ...

回复

Fine_YL 发表于 2022-11-25 23:02:31
也可以这样
write(1,'(100E)') (points(i,1),i=1,n_points)

一行要输出的不多的二维数组,可以直接
do i=1,n
    write(1,*)(a(i,j),j=1,3)
end do

评分

参与人数 1F 币 +1 收起 理由
fcode + 1 do循环写write(1,*) a(i,:) 就可以了.

查看全部评分

jojo9 发表于 2021-9-15 17:31:21
胡文刚 发表于 2021-9-15 17:04
do i=1,n_points
        write(110, "(es13.6)", advance = "NO") points(i, 1)
    enddo

感谢,原来问题出在这,多谢您
胡文刚 发表于 2021-9-15 17:04:33
   do i=1,n_points
        write(110, "(es13.6)", advance = "NO") points(i, 1)
    enddo

评分

参与人数 1F 币 +4 收起 理由
fcode + 4

查看全部评分

jojo9 发表于 2021-9-15 16:55:09
li913 发表于 2021-9-15 16:43
可能是显示的问题,如果是用记事本打开,取消自动换行。每行数据过多,其他软件也可能有这个问题。 ...

谢谢您的回复!但是不是显示的原因,已经排查过这个了
li913 发表于 2021-9-15 16:43:48
jojo9 发表于 2021-9-15 16:15
而且也不是电脑内存限制的原因,换了计算电脑试了下,依旧会写成三行

可能是显示的问题,如果是用记事本打开,取消自动换行。每行数据过多,其他软件也可能有这个问题。

评分

参与人数 1F 币 +4 收起 理由
fcode + 4

查看全部评分

胡文刚 发表于 2021-9-15 15:47:45
write(110, "(*(es13.6))")  points(:, 1)
jojo9 发表于 2021-9-15 14:45:11
  改成这种形式也不行
    do i=1,n_points
        write(110, *, advance = "NO") points(i, 1)
    enddo
同样的报错

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-5-5 04:26

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表