输出一个很长的数据到文件的同一行
想将一个二维数组的一列数据输出到文件中的同一行,(数组见图,有19万多行)write(110, *)points(:, 1)
但是代码执行后,确实按列的顺序输出了,在文件里却每隔6个数据自动换行。
查了一下度娘和书,在write里面用advance控制
write(110, *, advance="NO")points(:, 1)
然鹅却报错了~
:error #6568: This use of the ADVANCE, SIZE, or EOR specifier is invalid
又查了下百度说是intel的编译器不支持这个用法,请问大佬们有什么解决办法吗?
改成这种形式也不行
do i=1,n_points
write(110, *, advance = "NO") points(i, 1)
enddo
同样的报错 write(110, "(*(es13.6))")points(:, 1) 胡文刚 发表于 2021-9-15 15:47
write(110, "(*(es13.6))")points(:, 1)
您好,我刚试过格式化输出,但是这样依旧没写在同一行,一行写入某个数量的数据后依旧换行了,是编译器的限制吗 本帖最后由 jojo9 于 2021-9-15 16:16 编辑
胡文刚 发表于 2021-9-15 15:47
write(110, "(*(es13.6))")points(:, 1)
而且也不是电脑内存限制的原因,换了计算电脑试了下,依旧会写成三行 jojo9 发表于 2021-9-15 16:15
而且也不是电脑内存限制的原因,换了计算电脑试了下,依旧会写成三行
可能是显示的问题,如果是用记事本打开,取消自动换行。每行数据过多,其他软件也可能有这个问题。 li913 发表于 2021-9-15 16:43
可能是显示的问题,如果是用记事本打开,取消自动换行。每行数据过多,其他软件也可能有这个问题。 ...
谢谢您的回复!但是不是显示的原因,已经排查过这个了 do i=1,n_points
write(110, "(es13.6)", advance = "NO") points(i, 1)
enddo 胡文刚 发表于 2021-9-15 17:04
do i=1,n_points
write(110, "(es13.6)", advance = "NO") points(i, 1)
enddo
感谢:-handshake,原来问题出在这,多谢您 也可以这样
write(1,'(100E)') (points(i,1),i=1,n_points)
一行要输出的不多的二维数组,可以直接
do i=1,n
write(1,*)(a(i,j),j=1,3)
end do
页:
[1]