我的问题是 fprintf 只是将预期输出的一部分打印到文件中。当我使用 printf 时,输出正确打印在输出窗口上,表明循环是正确的,但是当我将它与 fprintf 一起使用时,不会打印完整的输出。仅打印初始部分。
请告知可能是什么问题???
提前致谢...
问题可能是您没有告诉 C 将数据实际写入磁盘。这通常在您关闭文件时自动发生,并且可能在其他时间自动发生(例如当内部缓冲区填满时)。
听起来您只写了几个字节,然后检查文件以查看发生了什么。如果是这样,您的程序可能在实际写入磁盘之前将这些字节保存在内部缓冲区中。它这样做是为了提高一般情况下的性能——您通常不希望对每个打印语句都进行磁盘访问。
正如其他答案所暗示的那样,一种解决方案是调用 fflush。这会将所有缓冲数据“刷新”到磁盘。还有其他解决方案,例如关闭缓冲,但调用 fflush 是最好的第一步,因为您是编程新手。
有关更多信息,这里是关于使用 C 的文件 I/O 的wiki 书籍的链接。您可以直接跳到fflush 部分,尽管您可能希望阅读介绍性段落以获得更多了解。
你尝试使用 fflush()