在Fortran中如何不换行写入?

7

我正在编写一段代码,计划编写一个10x10001的矩阵的.txt文件:

do i = 1, 10
    read(1,10) seed !Read a number from file 1
    write(2,20) seed !Write that number in file 2
    do k = 1, 10000 
        seed = mod((a*seed),m)
        R = seed/m
        write(2,20) R !I want all these numbers to be next to the seed, not on new lines
    end do
end do

但是所有的R都写在新的一行上。

是否有一种方法可以用空格分隔每个数字而不是换行符,或者我应该使用C++和管道来实现相同的代码?


1
就性能而言,您最好将这些值组装到一个数组中,并一次性写入整个数组(或者至少每次写入完整的100001元素行)。 - agentp
1个回答

12

您可以使用以下代码使write不在末尾添加换行符:

write(2, 20, advance="no") R

非常好用。谢谢。是否有类似的方法可以用于“读取”?然后我需要逐行逐列读取以执行某些操作。 - Miguelgondu
不错。 :) 读取空格分隔的值有点棘手,但仍然可行。请查看帖子。 - ArnonZ
2
我使用Python中的NumPy解决了这个问题:np.loadtxt将整个内容作为矩阵导入,然后我可以切割我想要的部分。不过还是谢谢你。 - Miguelgondu

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接