>>85
間違っちゃ無いが気になるとこが結構あった。
一応指摘しておくけど、もしすでに分かっていたら適当に聞き流しておいてください。

わざわざcloseを自分で呼ぶのが冗長。
closeはstreamのデストラクタで自動的に呼ばれる。
ただ、ofstreamを開く前にifstreamのcloseを呼び出す場合なら意味はある。
しかし、今回のコードだと、そうでないので、まったくもって無意味。

入力を文字列で受け取って変換するのは冗長。
operator>>(ifstream&,int)があるから変換する必要はない。
さらに言えば、入力長のチェックもしていないのでバッファオーバーフローの脆弱性がそれには存在する。

同様に、出力を文字列に変換するのも冗長。
同じようにoperator<<(ofstream&,int)があるから自分で変換する必要は無い。