Catコマンドの課題です。

条件を全て満たしたCatコマンドです。
知識と技術が追いついていないもので、ネットに落ちていたコードを拾って
その中身を理解しながらコメントを書いた形で提出しております。
その際、いろいろな先輩に助言頂きました。

不具合がいろいろあると思いますがレビューお願いします。
`i++`と書くと後置演算子、`++i`と書くと前置演算子になって式の評価(≒実行)の順序が変わるのは知ってる?
例えば、
```C
int i = 1, j = 1;
int a = ++i;
int b = i++;
printf("i: %d, j: %d, a: %d, b: %d", i, j, a, b);
```
とすると、
```
i: 2, j: 2, a: 2, b: 1
```
となります。
これは、前置演算子は式の評価の最初に評価されるけど、後置演算子は式の評価の最後に評価されるために起こる違いです。
で、`for`文の最後によく書くインクリメント文については、C言語では前置を使っても後置を使ってもほとんど変わらないので、慣習的に後置演算子を使っている例が多いのだけど、実際のところ論理的には前置演算子を使ったほうが無駄な値の一時保存を避けられるので、特に演算子のオーバーロードがあるC++などの言語では効率的にはそちらの方がいい事になります。([GoogleのC++ Style Guide](http://www.textdrop.net/google-styleguide-ja/cppguide.xml?showone=前置インクリメントと前置デクリメント#前置インクリメントと前置デクリメント)に細かい議論が書かれています)

なので、C言語でプログラミングする際は殆ど関係ないとはいえ、普段から意識的に前置インクリメントを使うようにしておいた方が他の言語をやった時にいいかもしれません。