如何通过C程序写入文本文件

时间:2009-06-29 09:09:50

标签: file partial printf

我的问题是fprintf只是将预期输出的一部分打印到文件中。当我使用printf时,输出正确地打印在输出窗口上,显示循环是正确的但是当我使用它与fprintf时,完整的输出是没有打印。只打印初始部分。

请告知可能出现的问题???

提前感谢...

4 个答案:

答案 0 :(得分:5)

我打赌你没有flushed / closed你的档案。

答案 1 :(得分:3)

问题可能是您没有告诉C实际将数据写入磁盘。这通常在您关闭文件时自动发生,并且可能在其他时间自动发生(例如内部缓冲区填满时)。

听起来你只是写了几个字节,然后检查文件看看发生了什么。如果是这样,您的程序可能会在实际写入磁盘之前将这些字节保存在内部缓冲区中。这样做是为了提高一般情况下的性能 - 通常不希望每个打印语句都有磁盘访问权限。

正如其他答案所暗示的那样,一个解决方案就是调用fflush。这会将所有缓冲的数据“刷新”到磁盘。还有其他解决方案,例如关闭缓冲,但调用fflush是最好的第一步,因为你不熟悉编程。

有关详细信息,请参阅wiki book关于C文件I / O的链接。您可以直接跳转到section on fflush,但您可能需要阅读介绍段落以获得一点更多见解。

答案 2 :(得分:2)

听起来好像忘记了fflushfclose

答案 3 :(得分:0)

你尝试使用fflush()

相关问题