Problem Set 5 - load - not trie, but hash (fscanf)

trie木使ったるぞ!おー!と宣言した矢先。
「トライ木って現実には使う機会ないんですよね(^_^;)」と耳にしたり、ネット上でも同様のコメントをちらほら見つけてしまった...結局、pset5はhash tableで実装することに。

#1. load
1単語を連続して読み取るために使うのがfscanf
1単語1単語どのように読んでいけば良いのだろう、特に、単語間の境界は?ひょっとしてfgetcを使って1文字1文字読み、\0を探さなきゃならない?と思っていたら...
C言語 scanf 使い方 | C言語関数一覧~bituse~
また、scanf関数は変数の容量を考えずにバッファに格納してしまいます。
ch変数は500バイト分しか定義してませんが、scanfで文字入力を受け付ける際には、
特に制限なしで文字を入力できてしまいます。
もし500バイト以上入力してしまうと、オーバーフローが発生して深刻なエラーが発生します。
対策として%の後ろに最大フィールド長と呼ばれる数字をつけて「%10s」と指定すると、
10文字だけ読み込むという指定ができます。

また、scanfはスペースや空白、改行文字などが入力文字の中に含まれていると、
その位置で入力を終了してしまいます。


なぁんだ、scanf(もfscanfも)、スペースや空白、改行文字が含まれていたら終わりとみなしてくれるのね。
都合の良いことに、この課題の前提条件
You may assume that any dictionary passed to your program will be structured exactly like ours, lexicographically sorted from top to bottom with one word per line, each of which ends with \n.
で単語毎に改行されているので、単純にfscanfを使ってよいのね。めっちゃ楽や。