補足:入出力関数を使いこなす
入出力関数を使うための準備
標準的なCの処理系には、printf()で画面に文字を表示したり、scanf()でキーボードからデータ入力する機能が備わっている。
これらは、標準入出力関数、と呼ばれる。こうした機能を使う場合は、プログラムの先頭部分に、
#include <stdio.h>
と書いておくこと。stdioはstandard input/output(つまり、標準入出力) に由来している。
以下に、printf()関数とscanf()関数の具体的な使用例を示す。これらの関数は、結構小回りが効く。
いくつかの基本的な使い方のパターンを理解してほしい。
printf( )の書式設定の例
| 記 述 例 (a = 123 ; x = 123.45678 ; の場合)  | 
      出 力 結 果 | 備 考 | 
      printf("abc") ;
printf("def") ;
       | 
      
      abcdef  | 
      改行なしの例。 | 
      printf("abc\n") ;
printf("def\n") ;
       | 
      
      abc[改行] def[改行]  | 
      "\n"は改行 | 
      printf("a=%d x=%f\n",a,x) ;
       | 
      
      a=123 x=123.45678[改行]  | 
      %dはint型変数に、 %fはfloat型変数に用いる  | 
    
      printf("a=%05d\n",a) ;
       | 
      
      a=00123[改行]  | 
      "%0md"でm桁表示(空いた桁には0を埋める) | 
      printf("a=%5d\n",a) ;
       | 
      
      a= 123[改行]  | 
      "%md"でm桁表示 | 
      printf("a=%x\n",a) ;
       | 
      
      a=7b[改行]  | 
      "%x"で16進数表示 | 
      printf("x=%010.3f\n",x) ;
       | 
      
      x=000123.457[改行]  | 
      "%0m.nf"で、全体をm桁、うち、小数点以下をn桁で表示。 空いた桁は0で埋める。  | 
    
      printf("x=%10.3f\n",x) ;
       | 
      
      x= 123.457[改行]  | 
      "%m.nf"で、全体をm桁、うち、小数点以下をn桁で表示。 | 
      printf("x=%.1f\n",x) ;
       | 
      
      x=123.5[改行]  | 
      "%.nf"で、小数点以下をn桁で表示。 | 
      printf("%f %%\n",x) ;
       | 
      
      123.45678 %[改行]  | 
      "%%" で % を表示 | 
      printf("x=%e\n",x) ;
       | 
      
      x=1.234568e+02[改行]  | 
      "%e"で指数表示。e+02は10の2乗という意味。 | 
scanf( ) の記述例
| 記 述 例 (int a,b ; float x ;)  | 
      キー入力 | 結 果 | 
      scanf("%d%d",&a,&b) ;
       | 
      
      123 456[改行]  | 
      a=123 b=456  | 
    
      scanf("%d%d",&b,&a) ;
       | 
      
      123 456[改行]  | 
      a=456 b=123  | 
    
      scanf("%d%f",&a,&x) ;
       | 
      
      123 3.1415[改行]  | 
      a=123 x=3.1415  | 
    
      scanf("a=%d",&a) ;
       | 
      
      a=123[改行]  | 
      a=123 | 
      scanf("a=%d",&a) ;
       | 
      
      123[改行]  | 
      aに値はセットされない。 入力パターンが"a=整数値"でないため。  | 
    
scanf( )にまつわる注意(上級者向き)
scanf()関数は、標準入力からのデータを、何もチェックしないままに
メモリー(変数のデータ領域)に書き込んでしまうので、間違った、あるいは、悪意を持ったデータ
入力に対して、プログラマーが意図しない動作を引き起こす可能性がある(それが、攻撃者の意図だったりもする)。
そのようなわけで、scanf()関数の使用は「危険」とされている。
ただ、「安全な」プログラムを書けるようになるまでは、覚えなければならない基本事項はまだまだあるし、 当面「自分の練習用」として使う限りにおいては問題ないので、細かいことは気にせずに先に進もう。