- ベストアンサー
表示がうまくいかない…
キーボードから文字を入力させて,入力させた文字を画面に表示させるという プログラムを作っています(ある文字を打つとプログラムを終了)。 プログラムを実行すると 「文字を入力してください」 (文字を入力すると) 「あなたが入力した文字は○です」 「文字を入力してください」 (なぜか文字を入力する暇もなく下の行に) 「文字を入力してください」 (ここではまた文字入力ができる) という風になります。 2回目の「文字を入力してください」がうまくいきません。 使用している関数はdo-while,scanf,printfのみです。 よろしくお願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
事象を基に手動リバースエンジニアリングしてみました #include<stdio.h> int main() { char c,d; do { printf("文字を入力してください\n"); scanf("%c", &c); printf("あなたが入力した文字は%cです\n", c); }while(c != 'e'); return 0; } のような感じのソースと推測されます。 scanfで一文字入力を行うと、リターンキーがバッファに残って 繰り返し処理の場合次のscanfが直通してしまいます。 scanf("%c", &c); ↓ scanf(" %c", &c); // スペースを入れる とすると一応回避されます。
その他の回答 (4)
- master000
- ベストアンサー率33% (16/48)
たぶん、scanfの記述が違っているんだな。 ソースが必要ですね。
- crew21
- ベストアンサー率26% (58/222)
ここまで簡単なプログラムなら、ここに書き出しちゃった方が早いよ。 丁寧に書いても20行もないでしょ。
- Koo128
- ベストアンサー率0% (0/1)
ソース中に「文字を入力してください」を表示している箇所を 洗い出したほうがいいのではないでしょうか。
- mac_res
- ベストアンサー率36% (568/1571)
> 使用している関数はdo-while,scanf,printfのみです。 プログラムを書いて見せてください。