I am writing a program to test/increase a user's vocabulary in a foreign language. I eventually want to provide edit functionality (users can add new words) and "plug-in" functionality for additional dictionaries but v1.0 will only have a single static language dictionary.
What is the best method to store and retrieve data? The data stored will be "word pairs."
Example (English <-> Japanese):
one:ichi
two:ni
three:san
Since the user has an option to repeat wrong answers, I have chosen a linked list style to manage the word pairs.
Code:
struct node {
char* english;
char* japanese;
struct node* next;
}
However, I need a method of "storing" the dictionary. Is it most efficient to store it as a text file? I would prefer the list to be encrypted or otherwise stored so that a user can't freely edit the dictionary with a text editor. Should I store the words in the source code somehow? If so, what is the best way to do this?
Long term, I need to be able to store UTF-8 code for foreign language characters such as SHIFT-JIS, for example, for Japanese.