OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
締切り
済み

入力修正

  • 困ってます
  • 質問No.121905
  • 閲覧数34
  • ありがとう数0
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 7% (7/95)

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

回答 (全3件)

  • 回答No.1
レベル13

ベストアンサー率 37% (419/1115)

手元に書籍がないので正確に書けないため具体的には書けませんが・・・。 お持ちのC言語のテキスト等でエスケープシーケンスという項目をしらべてみて下さい。 カーソル位置の制御ができますのでこれを使って任意の場所で入力操作をやり直すことが出来ます。 尚、ここではprintfと組み合わせて使用します。
手元に書籍がないので正確に書けないため具体的には書けませんが・・・。
お持ちのC言語のテキスト等でエスケープシーケンスという項目をしらべてみて下さい。
カーソル位置の制御ができますのでこれを使って任意の場所で入力操作をやり直すことが出来ます。
尚、ここではprintfと組み合わせて使用します。
  • 回答No.2
レベル12

ベストアンサー率 40% (201/496)

scanf 等でコンソールからデータを入力しているのですよね? プログラム上で訂正できるルーチンを組み込んでおくしかありません。 while(1) {  scanf ("data 1> %d", &a);  scanf ("data 2> %d", &b);  scanf ("OK? (y/n) %s", ...続きを読む
scanf 等でコンソールからデータを入力しているのですよね?
プログラム上で訂正できるルーチンを組み込んでおくしかありません。

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

など...。
  • 回答No.3
レベル13

ベストアンサー率 37% (419/1115)

No.1で回答した者です。 補足です。 カーソル位置の指定は1で示した通りですが、内部ロジック的には特定のキーの入力があった場合に前項目の入力部分にカーソルを移動しつつ前回の入力(画面に残っている文字列)の消去(スペースで上書きします)、前項目の入力処理の再実行が必要になります。 もっと単純にやるのであれば、入力画面全体のフォーマットを決めておいて再入力の際には全体を再描画する手ですが、こちらは画面 ...続きを読む
No.1で回答した者です。
補足です。
カーソル位置の指定は1で示した通りですが、内部ロジック的には特定のキーの入力があった場合に前項目の入力部分にカーソルを移動しつつ前回の入力(画面に残っている文字列)の消去(スペースで上書きします)、前項目の入力処理の再実行が必要になります。
もっと単純にやるのであれば、入力画面全体のフォーマットを決めておいて再入力の際には全体を再描画する手ですが、こちらは画面のちらつきが気になる向きにはお勧めできません。
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ