我想使用f77将以下输出写入txt文件:
14 76900.56273 0.000077 -100000 1000000000 -0.769006
我用:
write(6,*) KINC, BM, R2, AF, BK, BM/AF
没有任何格式(在十进制数字方面效果很好)。但是在我的txt文件中,输出写为:
14 76900.56273 0.000077 -100000
1000000000 -0.769006
因为我认为默认情况下有一个固定的列宽限制。我不知道是否可以更改它,以便我可以将其复制并粘贴到Excel中。
我看过FORTRAN 77 Language Reference,但我找不到办法。有任何想法吗?感谢
答案 0 :(得分:2)
如果您的编译器是dec / compaq / intel之一,请阅读此链接。
列出定向输出(fmt = *):: 80列限制默认值。
“列表定向顺序WRITE语句的属性称为右边距。如果未将RECL指定为OPEN语句说明符或环境变量FORT_FMT_RECL,则右边距值默认为80.当指定RECL时,右边距设置为RECL的值。如果列表定向顺序WRITE的长度超过右边距值的值,剩余的字符将换行到下一行。因此,写入100个字符将产生两行输出,写180个字符将产生三行输出。“
在英特尔的手册中,蓝色表示Fortran标准的扩展。这些扩展(非标准功能)可能会或可能不会由符合语言标准的其他编译器实现。
http://docs.oracle.com/cd/E19957-01/805-4939/6j4m0vnbu/index.html#z400074369ac
“尽可能避免使用超过80个字符的输出行”
答案 1 :(得分:1)
使用星号作为格式,您使用列出的IO。这是为了方便起见。它为程序员提供了最小的控制,对编译器和不完整的可移植性几乎没有限制。编译器可以自由确定诸如行长度之类的方面。如果要控制线路长度,请切换到使用实际格式。
P.S。为什么要使用FORTRAN 77? Fortran 90/95/2003更易于使用且功能更强大。 gfortran是一个开源编译器。