- ベストアンサー
DOS画面でテキストカーソルの位置を移動する(C言語)
DOS用のC言語プログラムを作っています。そこで printf関数などで文字列を表示した後表示した文字列の 間に違う文字列を挿入したりしたいのですがそんなことは 可能でしょうか? #include <stdio.h> int main(void){ printf("13456789"); printf("2"); return 0; } というプログラムを作ったとして1と3の間に割り込んで2と 入れたい場合どうしたらよいでしょうか? 開発環境はwindowsXPでコンパイワはBorlandです。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
#1の方の手順が使えるのは、本当にMS-DOS互換のプログラムだけです。 Borlandのコンパイラが、実は往年のTurboC++だとか言わない限り、WinXPではエスケープシーケンスは使えません。 Borland C++ 5.5等を使われているのであれば、それはコンソールアプリであって、DOSアプリとは中身が違います。 (見た目や書き方は大差ないですが) →Win32APIを呼ぶのが定石でしょうか。 SetConsoleCursorPosition等を調べてみてください。
その他の回答 (2)
- goku3
- ベストアンサー率35% (15/42)
例えば、結果的(見た目)に目的の方法を達成したいのであれば、 printf("13456789"); printf("\r"); //カーソルを先頭へ printf("123456789"); で、そんな風にはなります。。。
お礼
見た目的にやるのでは無くて本質的にやりたいのですが・・とにかく回答ありがとうございます。
- PrintScree
- ベストアンサー率25% (538/2091)
エスケープシーケンスというものを使用すれば可能です。 NECのMS-DOSの時は結構使っていました。 Windowsになってから、全く同じ使い方は出来なくなったようなので、下記URLを参考にしてみてください。 http://kasai86.ld.infoseek.co.jp/dos/esc.htm
お礼
こういうやり方もあるんですね。勉強になりました。ただ移植性を考えると使いにくい手法かもしれません。
お礼
なるほど。移植性を考えるとWinAPIを使うがベストのようですね。私のスキルでは難しそうですが勉強してみます。ありがとうございました。