- ベストアンサー
C言語の実行結果
C言語プログラムで、scanfにした時、実行結果では入力した文字がそのまま表示されますが、その表示をパスワードみたいに*で表示サせることはできないのでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
scanf自体は入力ですが、scanfが使う下位のライブラリが文字をエコーバック(=表示)しています。 エコーバックを止めるには、OSに依存した方法が必要(Windowsの場合とかLinuxの場合とかで違う)。 一文字入力ごとに * を出したいなら、「エコーバックをしない1文字単位の入力」を使う必要があります。これもOS依存ですね。 普通の入力は「エコーバックをする1行単位(Enterを押すまで自分のプログラムに戻ってこない)の入力」 です。
その他の回答 (1)
- Interest
- ベストアンサー率31% (207/659)
回答No.1
scanf は入力のみですから、出力(表示)はご自身で好きなようにいじれば良いのでは? 例えば、こんな感じ。 void main(void) { char password[ 10 ]; int i; scanf("%s", password ); // scanf で読んだ文字の数だけ * を表示する。 for(i=0; i<strlen(password); i++){ putchar('*'); } return; }
質問者
お礼
おお、ありがとうございます。
お礼
ありがとうございます