マイクロソフト社のVC++を使っているのですが、
Win32console Appllicationでプログラムを組んで
実行するときに、(MSdosが起動)
入力する数値が二つあるとして
一つ目をいれて、二つ目を入れているときに
一つ目の間違いに気づいて入力し直そうとしても
もう一つ目のところにカーソルが移動できず
それを一回終了してから最初からやり直す方法しかわかりません。
入力を正す方法を教えてください。

A 回答 (3件)

No.1で回答した者です。


補足です。
カーソル位置の指定は1で示した通りですが、内部ロジック的には特定のキーの入力があった場合に前項目の入力部分にカーソルを移動しつつ前回の入力(画面に残っている文字列)の消去(スペースで上書きします)、前項目の入力処理の再実行が必要になります。
もっと単純にやるのであれば、入力画面全体のフォーマットを決めておいて再入力の際には全体を再描画する手ですが、こちらは画面のちらつきが気になる向きにはお勧めできません。
    • good
    • 0

scanf 等でコンソールからデータを入力しているのですよね?


プログラム上で訂正できるルーチンを組み込んでおくしかありません。

while(1) {
 scanf ("data 1> %d", &a);
 scanf ("data 2> %d", &b);
 scanf ("OK? (y/n) %s", s);
 if (s[0] == 'y') break;
}

など...。
    • good
    • 0

手元に書籍がないので正確に書けないため具体的には書けませんが・・・。


お持ちのC言語のテキスト等でエスケープシーケンスという項目をしらべてみて下さい。
カーソル位置の制御ができますのでこれを使って任意の場所で入力操作をやり直すことが出来ます。
尚、ここではprintfと組み合わせて使用します。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


このカテゴリの人気Q&Aランキング

おすすめ情報

カテゴリ