- ベストアンサー
パックスペースが出来ません。
今回ファイル関係の命令(fopenなど)の練習の為、テキストファイルに足跡を書くプログラムを書きました。 [例]右3歩 *** 下2歩 *** * * 右、下はすぐ出来たのですが、左、上となると移動する分バックスペースで消さなくてはならなくなったので、 fprintf( fp, "\b" ); を含めたcase文を書きました。 しかし、結果のテキストを見てみると"\b"の部分が|になっていてバックスペースがなされていませんでした。タブの"\t"や改行の"\n"は実行されるのに、バックスペースは出来ません。 そこでなのですが、テキストファイルに出力する場合バックスペースはどうやればよいのでしょうか? よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
http://c-production.com/contents/c/sec01.html カーソルは移動するけど、文字は消えないみたいです。
その他の回答 (3)
私なら、以下のように作ります。 char型の2次元配列を用意します。 スペース記号で初期化します。 また現在位置の構造体を用意します。 右に移動すれば、現在位置のxを+1し、左に移動すれば、yを+1します。 移動するときに、移動先を'*'にしていきます。 このあたりの設定は好みです。 移動ごとに 画面をクリアし、(検索してください。) 二次元配列を描画します。 ファイル書き出しも、画面表示と同様です。 画面上のカーソル移動は、 http://hp.vector.co.jp/authors/VA016670/escape_code.html で実現されてはいかがでしょうか?
お礼
なるほど、2次元配列ですか。その様なものであればバックスペースが要らないかな、とは考えたのですが2時限配列は思いつかなかったです。というか、2次元じゃないとやっぱり必要になってきますよね、バックスペース・・・。 また、カーソル移動についてのコマンドを初めて見ることが出来ました。あるだろうとは思っていたんです。こんなコマンドなんですね。 貴重なご意見・アドバイス、ありがとうございました。
- php504
- ベストアンサー率42% (926/2160)
ファイルに書き出すんですよね それなら\bでどうなるかはファイルを表示するソフトの設定によるのでは
お礼
なるほど、となんとなく分かるんですが、実際にどうすればいいのでしょう? ちなみにテキストファイルの出力にはwindowsに最初から付いているメモ帳を使っています。
- Tacosan
- ベストアンサー率23% (3656/15482)
ちなみに, '\b' を出力することでどのような効果が得られると期待しているのでしょうか?
補足
コマンドプロンプト同様、バックスペース、つまり前1文字消去です。 [例]***| → "\b" → **| ※上の「|」はカーソルです
お礼
うーん、そうなんですか?自分のを見ている限り戻ってもいないような・・・。 でも、そのホームページで紹介していた\rが役に立ちそうですね。試してみます。 ご回答、ありがとうございました。