首页 > 解决方案 > C--程序没有正确读取文件结尾

问题描述

我正在尝试制作一组​​基本程序,其中一个程序向用户询问一组程序写入文件的值,而另一个程序从文件中读取值并将它们打印到屏幕上。这是我的代码:

阅读程序如下:

当我运行这两个程序时,第一个程序成功写入“inventory.txt”,但读取函数复制了最后一组值。它看起来像这样:

Please enter item data (part number, quantity, price): 3, 1, 3.0
Please enter item data (part number, quantity, price): 0

Below are the items in your inventory.
Part#   Quantity    Item Price
    3          1    $      3.00
    3          1    $      3.00

我相信问题出在我的 while (feof(fp)==0) 上,但我不太明白 feof 是如何工作的,我不知道如何在不使用“break;”的情况下替换它。

如何解决此重复问题?

标签: cfilefeof

解决方案


看起来很正常。读取最后一行时,最后一个字符(用于表示输入终止的“0”)尚未读取,因此 feof(fp) 返回 0,程序再次进入循环。


推荐阅读