我目前正在尝试用 C 语言编写一个程序来解决背包问题。作为本次作业的一部分,我们被要求打开一个文本文件,其内容如下,读取对象、重量、值和文件中每个对象的成本。我只是不知道如何导入这些信息并按照结构的正确顺序存储它。 以下是文本文件呈现格式的示例:objects.txt:
Blockquote
值(value)重量成本
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
最佳答案
是的,今天是周日,您的作业可能明天就要到期...我们不做作业,但我们可以提供一些指导。
要从文本文件中读取数据,请使用FILE *fp=fopen(...
打开它。 。打开文件(并检查文件是否已成功打开)后,您可以通过两种方式读取行:
调用
fscanf(fp, "%d %d %d ",...
并检查您想要的参数数量已被读取(如果没有,您可能位于文件末尾),或者调用
fgets
将一行读入缓冲区,然后处理缓冲区,您可以使用sscanf
很像fscanf
.
注意:您可以循环执行此操作,直到 fscanf
或fgets
无法再阅读任何内容。您不循环while (!feof(fp))
因为feof
报告读取失败后没有更多内容可读取。
您将数据读入结构的成员中。我假设您有一个结构数组,并且该数组足够大以容纳所有数据(动态分配将在您的类(class)稍后进行)。
最后用 fclose
关闭文件.
关于c - 如何从文件中正确导入此结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47618160/