5.画面からの入力

   入力項目が多い時や繰り返して入力する時はパラメータからセットするのは不向き
  です。そんな時は画面から対話形式に入力すれば良いでしょう。
  下記の18行を打ち込み後、コンパイルしてから実行します。

  #include <stdio.h>
  #include <stdlib.h>
  main()
  {
   char buf[8];
   int  x, y;
   while (1) {
    printf("xを入力して下さい(e:end) : ");
    gets(buf);
    if (buf[0] == 'e') break;
    x = atoi(buf);
    printf("yを入力して下さい(e:end) : ");
    gets(buf);
    if (buf[0] == 'e') break;
    y = atoi(buf);
    printf("x[%d] y[%d] x + y = [%d] \n", x, y, x + y);
   }
   printf("eが入力されたので終了します。\n");
  }

  いかがですか?
  画面にxとyの値を入力するように催促されるので4桁以内の数字を打ち込み
  enterキーを押して下さい。
  正しく加算結果が表示されていますか?
  終了する時は「e」と打ち込みenterを押します。

  今回の学習項目
   1)gets()
     画面から入力された文字列を()内に指定した場所へ格納します。
   2)while (1) { ... }
     以前ループとしてfor文がありましたが、同様にループとしてwhileが
     あります。
     whileは()内の条件が一致しているあいだ{}内を繰り返します。
     この例では、()内が1なので永久ループになっています。
   3)atoi
     前回「文字を数字へ」として数値変換しましたが、実際には関数が用意されて
     いるので、それを使用します。
     これは()内に数字の文字列をセットするとint型の数値として値をかえし
     ます。
   4)if (...)
     ()内の条件が真ならばその後の命令文を実行します。
     実行したい命令文が2つ以上ある時は{}で囲みます。
     また、条件が真の時は直後の命令文を実行しますが、その他に偽の時は次に
     elseを書きその後に命令文を記述します。
     複数命令の時は{}をお忘れなく。
   5)buf[0] == 'e'
     上記は条件文の例ですが、=(イコール)が2つ続いています。
     C言語では、条件文の等式を表すには==と記述します。
     これは、=だと代入文となっている為で、上記の例ではbuf[0]にeのコード
     0x41が入ってしまいます。
     他の言語からC言語へ移って来た方はよく間違え易いので注意しましょう。
     他に条件式の例をあげると!=(イコールで無い)、<=(右項以下)、
     >=(右項以上)、<(右項未満)、>(右項超過)等があります。
   6)break
     ループ文を抜ける命令です。
     もし、ループ文が入れこになっている時は、最も内側のループ文を抜けます。
     別に、ループを抜けずに最後へ飛ばす命令としてcontinueがあります。