c - 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;”的情况下替换它。
如何解决此重复问题?
解决方案
看起来很正常。读取最后一行时,最后一个字符(用于表示输入终止的“0”)尚未读取,因此 feof(fp) 返回 0,程序再次进入循环。
推荐阅读
- python - 了解 OpenCV 矩阵操作
- google-chrome - Chrome WebRTC 回声消除和外部音频源
- python - http post 字节转换为图像文件[无法识别图像文件]
- multithreading - 线程饥饿问题
- hibernate - 如何通过@Query 在多对一关系映射中获取值?
- asp.net-core - Nginx 代理中的跨域预检请求
- css - Bootstrap 4和flex中的元素居中
- amazon-ec2 - 如何使用 aws lambda 代理请求
- envoyproxy - 禁用特使代理上的扩展
- python - 我想在python代码中实现与.Net变量的交互。有没有办法替换pythonnet的scope.Set() scope.Get()?