【发布时间】:2017-03-24 00:47:22
【问题描述】:
我知道这是一个非常琐碎的问题,但我只需要快速帮助。我一直试图弄清楚这一点。我要做的只是从具有以下格式的文本文件中读取整数
8 blah blah
10 blah blah
2 blah blah
3 blah blah
我最终只想获取数字,将它们存储在数组中,然后将这些数字放入 BST。当我有一个只有数字但没有指定文件格式的文件时,我的 BST 工作正常。
blah 是什么并不重要,我只想获取数字并将它们存储在数组中。如果我取出blah's,我可以做到这一点。使用fscanf,我得到了存储第一个数字8 的代码,但它停在那里。同样在此示例中,有四行,但文件中有多少行并不重要。可能是 12 或 6。我怎样才能正确地做到这一点。以下是我解决这个问题的糟糕尝试。
fscanf(instructionFile, "%d", &num);
我也试过做类似的事情
while(!feof(instructionFile)){
fscanf("%d %s %s", &num, string1, string2);
}
存储所有内容并且只使用整数,但是当我这样做时,我的 BST 不起作用。
【问题讨论】:
-
停止使用 fscanf。使用
fgets,然后用strtol解析 -
数字总是在行首吗?线路中总是有一个数字吗?一行可以有很多数字吗?数字可以用字母或标点符号包围吗?您不必担心标志吗?
-
@JonathanLeffler 我让它工作了,但我们可以假设数字总是行的开头,我们不必担心标志,每行只有一个数字。我可以想象如果在不同的地方每行有多个数字,这将是多么复杂
-
很高兴你得到了解决。是的,我在之前的评论中提到的那些问题都让我更难处理。这取决于上下文,听起来您有一组相当良性的数据可供使用。不要忘记接受最有帮助的答案,假设其中至少有一个是有帮助的。这样可以让其他人知道问题已解决。
标签: c integer binary-search-tree scanf