質問です

windows xp sp3
gcc 4.40 (g++)
C++
コンパイルオプション特になし

char buffer[1024];

while (fgets(buffer, 1024, fp))
{
  printf(buffer);
}

こんな感じで単純にテキストファイルから読み込んで行単位で表示させようとしているのですが、
テキスト内に”%20”がある行に達すると、「アプリケーションエラー ○×のメモリーがread〜」で終了してしまいます。

buffer[1024]を大きくしてみたりしましたがだめでした。どのように対処すればよろしいでしょうか?