2015.10.20(rev21)
(6)入出力関数:printf( )とscanf( )
 既に何度も出ているように,標準出力関数としてprintf( )がある。 標準入力関数(標準入力装置キーボードからデータを受取る関数) としては,scanf( )が代表である。

printf関数における書式
記号
表示内容
プログラム例
出力結果
説明
d
符号付10進数 printf("%d",54); 5410進数で左詰
f
浮動小数点 printf("%f",36.01); 36.010000小数点を用いて表示
e
指数形式 printf("%e",-36.01); -3.601000e+01仮数と指数で表示
c
1文字 printf("%c",'S'); S1文字を表示
s
文字列 printf("%s","SHUDO"); SHUDO文字列を表示

scanf関数における書式
記号
入力内容
プログラム例
入力例
説明
d
符号付10進数 int n;
scanf("%d",&n);
-54nに-54が入力される
f
浮動小数点 float x;
scanf("%f",&x);
-360.01
-3.6001e2
xに-360.01が入力される
s
文字列 char str[10];
scanf("%s",str);
Shudo-u配列str[ ]にShudo-uが
左詰に入力される

[重要]scanf()関数の中に書く引数は変数の「アドレスの値」である 必要がある。 変数xのアドレスの値は,&という記号を付けて&xで与えられる。但し, 配列名には&を付けなくても配列の先頭のアドレス値が渡される。

(7)例題2.4 入力と出力
整数,実数,文字列をキーボードから入力し,その値を ディスプレイに表示するプログラムを作成せよ。

[プログラム]

/* 例題2.4 0042xxx 修道太郎 2000/11/17 */
#include <stdio.h>
main()
{

int m,n;
float a,b;
char str[20];

printf("\n");
printf("2つの整数mとnをカンマで区切って入力して下さい ");
scanf("%d,%d",&m,&n);

printf("2つの実数aとbを空白をはさんで入力して下さい ");
scanf("%f %f",&a,&b);

printf("文字列を入力して下さい ");
scanf("%s",str);

printf("例題2.4 0042xxx 修道太郎 2000/11/17\n");
printf("m(%%d), n(%%d)=%d,%d\n",m,n);
printf("a(%%f), b(%%e)=%f,%e\n",a,b);
printf("str(%%s)=%s\n",str);
}

[説明]
1. char str[20]で20バイトの記憶領域が割り当てられる。
2. 配列名はアドレスを表すので&は付けない。
3. %dと表示するには,%%dと書く必要がある。

[コンパイル・リンク]
r24.cというファイルを名付けて保存する(文字コードに注意)。
出力ファイル名r24としてコンパイル・リンクし,実行して確認せよ。

(8)問題2.1
セ氏温度の値をキーボードから入力し,それをカ氏温度に変換した 値を表示するプログラムを作成せよ。但し,セ氏温度とカ氏温度の間には 次式の関係がある。
カ氏温度=セ氏温度×9.0/5.0+32.0


前へ
次へ
廣光先生のホームページ