• ベストアンサー

表示がうまくいかない…

キーボードから文字を入力させて,入力させた文字を画面に表示させるという プログラムを作っています(ある文字を打つとプログラムを終了)。 プログラムを実行すると 「文字を入力してください」   (文字を入力すると) 「あなたが入力した文字は○です」 「文字を入力してください」 (なぜか文字を入力する暇もなく下の行に) 「文字を入力してください」 (ここではまた文字入力ができる) という風になります。 2回目の「文字を入力してください」がうまくいきません。 使用している関数はdo-while,scanf,printfのみです。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • iyomante
  • ベストアンサー率60% (14/23)
回答No.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)
回答No.4

たぶん、scanfの記述が違っているんだな。 ソースが必要ですね。

  • crew21
  • ベストアンサー率26% (58/222)
回答No.3

ここまで簡単なプログラムなら、ここに書き出しちゃった方が早いよ。 丁寧に書いても20行もないでしょ。

  • Koo128
  • ベストアンサー率0% (0/1)
回答No.2

ソース中に「文字を入力してください」を表示している箇所を 洗い出したほうがいいのではないでしょうか。

  • mac_res
  • ベストアンサー率36% (568/1571)
回答No.1

> 使用している関数はdo-while,scanf,printfのみです。 プログラムを書いて見せてください。

関連するQ&A