【发布时间】:2017-11-27 09:01:16
【问题描述】:
我们需要创建一个包含文本文件内容的二叉树。指针 selection_a 和 selection_b 指向目录中的另一个文本文件。
文本文件的结构如下: 1.行:标题 2.线路:选项A 3.线路:选项B 4. - 名词。行:文本。
第一个文件在启动程序时作为参数给出。所有文件都应保存在程序的开头。 然后显示第一个文件的文本,用户可以输入 A 或 B 继续。根据选择,显示文件选项A/B的文本,他可以再次决定。
树的最后一个文件不包含选项:2. 和 3. 行是“-\n”。
问题是,这段代码只读取了第一棵树的所有选项 A 文件。它没有读入任何 B-Options。 最后程序显示内存访问错误。
我知道代码可能有点乱,但我们是编程的初学者。 希望任何人都可以提供帮助。 代码如下:
struct story_file
{
char *title;
char *text;
struct story_file *selection_a;
struct story_file *selection_b;
};
【问题讨论】:
-
strcat(filename, txt);是错误的,因为 filename` 指向的argv[1]可能不够大,无法附加“.txt”。 -
char ch = getc(input);必须是int ch = getc(input);才能与 EOF 进行比较。 -
current->text = strcat(current->text,lines);错误,因为您没有为此分配空间。 -
你知道如何解决这个问题吗,我们真的不知道如何继续:/