a.exe < sample.txt > output.txt

入力リダイレクトではa.exeは上書きされないが、
出力リダイレクトであるoutput.txtは実行のたびに上書きされる。

おそらくこれらの順番がめちゃくちゃになったんだろ。
もう一度コンパイルとsample.txtを用意してやり直すべし。