ファイルを開くことができなかった場合、ファイルを閉じる必要がありますか?

いいえ、明示的に行う必要はありません。 (ファイル) ストリームは、暗黙的に常にスコープ外に出ると閉じられます。

close() std::iostream() の関数 冪等でもあります ストリームが閉じられた (または正常に開かれなかった) 後、ストリームの状態に害を及ぼすことはありません。