1

我在 C 中创建了一个词库程序。在我的程序中,用户可以插入一个单词及其同义词。另一个功能是搜索一个词,然后显示该词的同义词。

我的问题是如何保留我插入的单词并在再次运行程序时仍然检索它们?文件处理是一种解决方案吗?我将如何做?

4

2 回答 2

1

程序无法在运行之间可靠地将信息保存在内存中*,因此它必须将这些信息存储在文件中。文件旨在存储程序运行之间的信息。

至于怎么做,那是你的决定。最有可能的是,您将选择一种简单易读的格式,例如,在行首的开头词,后跟冒号,然后是分号分隔的同义词列表:

head: skull; cranium; noggin; noodle
head: aptitude; faculty; talent; gift; capacity; ability; mind; brain

这是灵活的,允许您在同义词列表中使用短语(甚至是包含逗号的短语)。您可以在写出数据之前对数据进行排序,以便在读入时方便,但通常最好在您读回数据时(在下一次运行开始时)验证数据是否仍然排序,因为有人可能会手-编辑了文件并且没有保留排序顺序。


* 如果进程使用 System V 共享内存 IPC,那么您可以将数据存储在程序运行之间存在的共享内存段中。但是,尝试这样做并不是一个特别明智的想法。文件具有更好的耐用性;它(通常)会在重新启动后继续存在,并且可以放置在分布式文件系统上,而共享内存仅限于单台机器。

于 2014-03-24T04:49:27.250 回答
1

您需要设计一个简单的文件格式来描述您的数据,然后编写代码以写入该格式,并编写代码从该格式读取并正确处理错误。

作为一个简单的例子,你可以有一个文件,其中存储了如下行:

happy:joyful
happy:exuberant

在这种情况下,您还需要确保用户不能输入空行或冒号作为单词输入,以便语法明确。

于 2014-03-24T04:50:09.990 回答