[解決済み] コマンドラインをアニメーションで表示するには?
2023-07-02 17:11:30
質問
私はいつも、人々がどのようにコマンドラインの前の行を更新するのか不思議に思っています。この素晴らしい例は、Linuxでwgetコマンドを使用するときです。これは、次のような ASCII ローディング バーを作成します。
37% [======> ]です。
で、もちろんローディングバーは動き、パーセントも変わりますが、改行されません。どうすればいいのかがわかりません。どなたか正しい方向を教えていただけませんか?
どのように解決するのですか?
私が知る限り、2つの方法があります。
- バックスペース エスケープ文字 ('\b') を使用して、行を消去する。
-
行を消すには
curses
パッケージのバインディングがあれば、それを使います。
そして、Google が明らかにした ANSI エスケープ コード というのがあり、これが良い方法と思われる。参考までに、これを行うためのC++の関数を紹介します。
void DrawProgressBar(int len, double percent) {
cout << "\x1B[2K"; // Erase the entire current line.
cout << "\x1B[0E"; // Move to the beginning of the current line.
string progress;
for (int i = 0; i < len; ++i) {
if (i < static_cast<int>(len * percent)) {
progress += "=";
} else {
progress += " ";
}
}
cout << "[" << progress << "] " << (static_cast<int>(100 * percent)) << "%";
flush(cout); // Required.
}
関連
-
[解決済み] scpを使ってリモートからローカルにフォルダをコピーするにはどうしたらいいですか?
-
[解決済み] MySQLでコマンドラインを使用してSQLファイルをインポートするにはどうすればよいですか?
-
[解決済み] Bashでコマンドライン引数を解析するには?
-
[解決済み] Bashでコマンドの出力に変数を設定するにはどうすればよいですか?
-
[解決済み] MySQLでコマンドラインを使用してユーザーアカウントのリストを取得するにはどうすればよいですか?
-
[解決済み] コマンドラインから .bash_profile を再読み込みする方法は?
-
[解決済み] コマンドラインからすべての環境変数をリストアップ
-
[解決済み】rakeタスクにコマンドライン引数を渡す方法
-
[解決済み] Oh My Zsh - 「アップデートを確認しますか」プロンプトを無効化する
-
[解決済み] Tmuxのペインタイトル
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Octaveでコマンドラインをクリアするには?
-
[解決済み] zsh: コマンドが見つかりません: gulp
-
[解決済み】Rスクリプトからコマンドラインパラメータを読み込むにはどうすればよいですか?
-
[解決済み】sedを使って、ファイル内の最初の出現箇所のみを置換する方法は?
-
[解決済み] コマンドラインからcygwinコンポーネントをインストールするにはどうすればよいですか?
-
[解決済み] ラインインコモン(逆差分)の表示方法を教えてください。
-
[解決済み] ターミナル/コマンドラインからVSコードエディタを呼び出す方法
-
[解決済み] Windows 10でコマンドプロンプトがフリーズするのはなぜですか?
-
[解決済み] コマンドラインからMakefileに引数を渡すには?
-
[解決済み] バッチスクリプトの中からバッチスクリプトを実行するにはどうしたらいいですか?