2

我的问题是 fprintf 只是将预期输出的一部分打印到文件中。当我使用 printf 时,输出正确打印在输出窗口上,表明循环是正确的,但是当我将它与 fprintf 一起使用时,不会打印完整的输出。仅打印初始部分。

请告知可能是什么问题???

提前致谢...

4

4 回答 4

5

我敢打赌你没有刷新/关闭你的文件。

于 2009-06-29T09:10:40.883 回答
3

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

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

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

有关更多信息,这里是关于使用 C 的文件 I/O 的wiki 书籍的链接。您可以直接跳到fflush 部分,尽管您可能希望阅读介绍性段落以获得更多了解。

于 2009-08-09T16:10:39.487 回答
2

听起来你忘了做fflushfclose

于 2009-06-29T09:11:49.010 回答
0

你尝试使用 fflush()

于 2009-08-09T15:51:59.573 回答