printf 関数とは逆に、キーボードから値を入力するために使う関数は、scanf 関数です。
# include <stdio.h>
int main()
{
int d;
scanf("%d",&d);
printf("input > %d\n",d);
return 0;
}
この関数呼出しを使うことにより、プログラムの実行時にさまざまな値を入力することができます。上の例では、%d という変換文字(d 変換)用いました。この変換文字は、printf 関数と(ほぼ)同様です。& 記号は、変数 d の先頭番地を示す記号ですが、ポインタの章で説明します。
scanf 関数も printf 関数と同様に、さまざまな変換仕様を使うことができます。
| 変換文字 | 入力値 | 変換文字 | 入力値 |
|---|---|---|---|
| d | 10進数定数 | x,X | 16進数定数 |
| o | 8進数定数 | u | 符号なし10進数定数 |
| f | 固定小数点定数 | e | 浮動小数点定数 |
| g | 固定/浮動小数点定数 | c | 文字定数 |
| s | 文字列定数 |
# include <stdio.h>
int main( )
{
int i, c;
printf( "hexadecimal number: ");
scanf( "%x", &i );
printf( "character: " );
scanf( "%c", &c );
printf( "i = %d c = %c\n", i, c );
return 0;
}
教科書の p.65 にあります。