ユーザーの待ち時間に表示するようなプログレスバーをC言語で表示する方法を説明します。
ソースコードと実行例
先日、C言語でASCII文字がくるくる回るスピナーの作り方を投稿しました c言語で待ち時間を示すスピナーの簡単な表示法|キャリッジリターン
今回はプログレスバーを表示する方法を示します。 コード例は下記のようになります。
| |
実行結果はこんな感じです。1秒ごとにバーが伸びていき10秒たつと終了します。シンプルなプログレスバーですね。

コードの解説
特に難しいコードではないですが、要点は printf("\033[ ですね。
これは ANSI エスケープコード といいます。
これを使うと文字に色をつけたりカーソルの位置を変更したりもできます。
ANSIエスケープコードについては碧色工房 - ANSIエスケープコードにわかりやすい詳細説明がされていました。
今回の例では下記の3つを使用しました。
printf("\033[2K")その行を削除printf("\033[G")カーソルを行頭に移動printf("\033[2F")カーソルを2行上に移動
これらの他にもいろいろあります。その気になればいろんなアニメーションが作れます。ちょっとしたCUIでのインタラクティブなプログラムも作れますね。いろいろ遊んでみてください!
まとめ
今回はC言語で、ANSIエスケープコードを使ってプログレスバーを書きました。 ANSI エスケープコードを使えば可能性は無限大です!ぜひチャレンジしてみてください!
Note
今回の投稿は今川館 - ANSIエスケープコードを使ってコンソールアニメーションを 参考にさせていただきました。Go言語でスピナーなどを書く説明をされています。