• ベストアンサー

簡単なscanf文が、わかりません。

#include <stdio.h> int main(void) { int data; scanf("%d",&data); /*入力部分*/ printf("%d\n",data); return 0; } 参考書には、キーで入力、enterキー押すと、はじめて文字が画面に表示されるとなってましたが。 実際は、enter押さずに、キーボードでキー入力した時点で文字が表示されますが、 どこが間違っているんでしょうか? コンパイラは、 Borland C++ Compiler です。 お願いします。

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

  • ベストアンサー
回答No.2

キーを押して表示されたのは、所謂エコーバック文字でしょう。 まさかエコーバックなしでは使いにくいでしょう? 但し、一般的な環境では確かにEnterキーを押さないと入力が 有効にならないことは参考書のとおりでしょう。 尚、そのscanf()の入力待ちでアルファベットなどを入力するとdataに正しく入力できないのでご用心。

startover
質問者

お礼

すばやい回答ありがとうございます。 エコーバック文字と言うのが勉強になりました。 文字入力すると、基本的にエラーなんですね。 ありがとうございました。

その他の回答 (1)

  • kamejiro
  • ベストアンサー率28% (136/479)
回答No.1

>参考書には、キーで入力、enterキー押すと、はじめて文字が画面に表示されるとなってましたが。  こちらは、scanf文で入力された値をprintf文で画面表示することを言っているのだと思います。 >実際は、enter押さずに、キーボードでキー入力した時点で文字が表示されますが、  scanf文でキー入力した値が画面に表示されないと入力誤りかどうかも判断できません。  ゆえに入力した値そのものをそのまま画面に表示しているのだと思います。

startover
質問者

お礼

すばやい回答ありがとうございます。 表示された文字は、入力が誤りかどうかを判断するための物だったんですね。 ありがとうございました。

関連するQ&A

専門家に質問してみよう