- - PR -
コンソールアプリで同じ行に上書き表示するには
1|2|3
次のページへ»
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-02-02 15:16
karajanです。
いつもお世話になります。 現在、コンソールアプリに挑戦しているのですが、あるループ処理の進捗状況をパーセントで表示する場合、 Console.Write("現在{0:P}", percent); とすると、当然ながら 1%2%3%4%.... となってしまいます。 同じ箇所にパーセント表示を更新したいのですが、どのように方法があるのでしょうか。 コンソールアプリは初めてなので、難儀しています。 よろしくお願いします。 | ||||
|
投稿日時: 2004-02-02 15:35
コンソールアプリというと
具体的な方法は不明ですが、改行コードをいれる 画面をクリアなどの 方法とればよいのでは | ||||
|
投稿日時: 2004-02-02 15:37
コンソールアプリで動くかわかりませんが
DOSの場合は↓のように書いてました Console.Write("現在{0:P}\r", percent); | ||||
|
投稿日時: 2004-02-02 15:37
ほむらです。
もしも、改行が\r\nで表現可能ならば\rだけにすれば同じ行に上書きします。 ただし。書き込みが余った部分はそのままになるので 足りない分はスペースで埋める必要があります。 だめなら、制御コード 0x10(CR)の出力でいくはず。。。 ちなみに、頻繁に書き換える場合はカーソルを消しておかないと かっこよくいかないのであしからず。 #あっかぶった^^;;; #そして僕もおなじく、DOSの知識です [ メッセージ編集済み 編集者: ほむら 編集日時 2004-02-02 15:40 ] | ||||
|
投稿日時: 2004-02-02 16:03
脱線:
う〜ん、DOSの頃はエスケープシーケンスを使っていたなぁ・・・忘れてる...--; Nifty Serve(現@nifty)のFGAL-ATにはエスケープシーケンス用の会議室があって、9600bpsならきれいに見えるエスケープシーケンスアニメを作っていました。 | ||||
|
投稿日時: 2004-02-02 16:24
\b(バックスペース)で戻るとか、\r(キャリッジリターン)で行の先頭に戻るとかでどうです?
| ||||
|
投稿日時: 2004-02-02 16:26
なつかしいですな。わたしはよくデバッグ文を固定位置に表示させるのに使ってました あと、どの時代でも職人さんはいるものですね | ||||
|
投稿日時: 2004-02-02 16:53
このような方法があるんやないでしょうか?
import java.util.*; public class cls { public static void main(String args[]){ for(int i=0; i<=100; i++){ System.out.println("^[[2J"); System.out.println("^[[0;0H"); System.out.println(i + "%"); } } } 又は #define CLS "\033[2J" #define HOME "\033[0;0f" main() { int i; for(i = 0; i<=1024; i++){ printf(CLS); printf(HOME); printf("%d \%", i); } } Windows で動くかどうかは解りませんが・・・ |
1|2|3
次のページへ»