簡単なプログラミングだと思うのですが,どうしてもうまくいかないので質問させていただきます.
C言語またはC++において,txtかcsvファイルの内容を1行ごとに読み込んで,重複している行が複数あった場合,他を削除し1行のみにするプログラムを作成したいです.
txt,csvファイルは具体的には,以下のようになっています.

About   IN  about
Ada NP  Ada
Additional  JJ  additional
Adventures  NNS adventure
Adventures  NNS adventure
Adventures  NP  <unknown>

上記の例においては,Adventures NNS adventure という行を1行削除したいです.
すでにソートはされており,アルファベット順に並んでいるので,重複する行がある場合は必ず隣り合っています.
行数は30000行近くあります.

while(fgets(buf,20,fp)!=NULL){
    strcpy(word[i], buf);
    printf("%s\n",word[i]);
    i++;
}

などのように,何種類かファイル読み込みを試してはみましたが,2行にまたがって読み込んだり変なところで改行されたりで,うまくいきませんでした.
読み込みができたら,「次の行と比較して違った場合のみ出力する」などとすれば実現できるかなと考えています.
アドバイスをよろしくお願いいたします.