我正在尝试编写一个程序来解决C中的背包问题。作为这项任务的一部分,我们被要求打开一个文本文件,其内容如下,读取对象,权重,值和文件中每个对象的成本。我根本不知道如何导入这些信息并按照结构的正确顺序存储它。 下面是文本文件显示格式的示例是objects.txt:
块引用
价值重量成本
7 1 4
6 5 10
6 11 15
5 4 8
4 2 20
3 6 8
2 4 9
2 10 3
1 6 7
答案 0 :(得分:1)
是的,现在是星期天,明天你的作业可能会到期......我们不做作业,但我们可以提供一些指导。
要从文本文件中读取数据,请使用FILE *fp=fopen(...
打开它。打开文件(并检查它已成功打开)后,您可以通过两种方式读取行:
通过调用fscanf(fp, "%d %d %d ",...
并检查您想要读取的参数数量(如果没有,您可能在文件末尾),或者
通过调用fgets
将行读入缓冲区,然后处理缓冲区,您可以sscanf
使用fscanf
。
注意:您在循环中执行此操作,直到fscanf
或fgets
无法再读取任何内容。您不循环while (!feof(fp))
,因为feof
报告在读取失败后无法阅读。
您将数据读入结构成员。我假设你有一个结构数组,我假设数组足以保存所有数据(动态分配将在你的课程中稍后进行)。
最后,您使用fclose
关闭文件。