主题:[讨论]求解答
yyjyuan2011
[专家分:0] 发布于 2011-12-12 20:04:00
在Fortran中,输出到文本文件中的内容要等程序运行结束后才输出吗?还是边运行边输出?
回复列表 (共5个回复)
沙发
yeg001 [专家分:14390] 发布于 2011-12-12 22:18:00
你想什么时候输出就什么时候输出. 还没见过一种编程语言要硬运行完才输出的前面的内容的.
板凳
cgl_lgs [专家分:21040] 发布于 2011-12-12 23:10:00
有些数据可能要到你close后才写入,因为缓存问题:)
3 楼
臭石头雪球 [专家分:23030] 发布于 2011-12-13 08:31:00
一般来说,至少在windows下的编译器,Open 时都会才用独占方式打开文件。
也就是说,在 close 以前,常规方法是不能再访问这个文件的。
我不知道你要实现什么目的。但是如果你想在程序未结束以前访问这个文件,那么需要先 close。
4 楼
wm694005136 [专家分:10] 发布于 2011-12-13 09:25:00
你好,我以前没有注意到这个问题, 没有用close。我每迭代一步都要输出数据,照你这么说,是不是有时会出现没有输出的情况?
5 楼
yeg001 [专家分:14390] 发布于 2011-12-13 10:14:00
楼上是说写入的内容可能暂时存放在缓冲里面,最终这些内容还是会写到文件的.
如果你确实很希望每次输出都马上执行写操作,可以使用一些系统的I/O同步函数.
不过如果存在大量读写文件还是让他继续使用缓冲吧,提高效率是缓冲存在的意义.
我来回复