アプリ版:「スタンプのみでお礼する」機能のリリースについて

閲覧いただきありがとうございます。
C言語を使ってプログラムを作成しています。そこで、scanfを使って
文字を打ち込む際にBack Spaceキーを無効にする方法はあるのでしょうか?
ご存知の方いらっしゃれば、教えていただきたいです。
OSはwindows7を使っています。

A 回答 (3件)

>リアルタイム入力機能とはなんですか?



普通のコンソールアプリのキーボード入力は、Enterキーを押して初めてプログラムにデータが渡ります。
キーを押した瞬間にそのキーデータがプログラムに渡ることをリアルタイム入力と書きました。
    • good
    • 0

scanfでBack Spaceを入力したい理由は?


普通は、コントロールコードを読むのにscanfは使いませんが。


ちなみに、scanf自体は、BaskSpaceを入力できます。「通常の文字」ではないので、 %s で取り込むことはできませんが。
BackSpaceを取り除いているのは端末側(コマンドプロンプト)で、BackSpace等の編集処理が済んだ最終的な文字列だけがscanfに(正確には標準入力に)送られてきます。

conio.hにある関数で直接入力できたと思いますが、今環境がないので確認できません。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
たとえば、
「[あいうえお]を入力してください」とコマンドプロンプトに表示され、
その文字を打った時にbackspaceで修正できないようにしたいのです。
キーボードのタイピング練習といえばピンときますでしょうか?

お礼日時:2015/06/24 18:25

scanfを使ってでは無理です。

1文字のリアルタイム入力機能を使って、1文字ずつ入力することになります。
Win32APIを使うのだとも思いますが、ちょっとググった感じでは参考になるコードは見当たらないですね。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
リアルタイム入力機能とはなんですか?
私が持っているテキストには基本的なことしか載っていないので、
詳しく教えていただけると助かります。

お礼日時:2015/06/24 18:19

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