C言語:scanf()関数

scanf()関数

キーボードからの入力に対する関数

構文

[code lang=c]
scanf(書式1, 書式2 …, 引数1, 引数2, …);
[/code]

  • 書式1:書式指定文字列のみ [%d , %c , %s]
  • 引数1:変換したデータを格納する場所(アドレス)

キーボードから数値を入力する場合

[code lang=c]
int age;
scanf(年齢を入力して下さい。→ %d \n, &age);
[/code]

上記で示した書き方より 下記に示した書き方が正しいです。

[code lang=c]
printf(年齢を入力して下さい。→);
scanf(%d, &age);
[/code]

※ アドレス演算子は 変数名の前に付ける事で その変数の取られている場所(アドレス)を示す。

サンプル

[code lang=c]
char a = 10;
[/code]

  • プログラム中でaと書くと変数aの内容 つまり10を示す。
  • プログラム中で&aと書くと変数aの場所 つまり2000番地を表す。

scnaf()の働き

[code lang=c]
int in_data;

scanf(%d, &in_data);[/code]
[/code]

  • キーボードから入力された数字(文字)を10進数の数値に変換しなさい。
  • 変換したデータの格納場所(アドレス)を指定する。
  • キーボードより 2つの整数を入力し 加算した結果を表示するプログラム(但し 2つの整数はint型の変数で扱う。)

[code lang=c]
void main (void) {

int a, b;

printf(1つ目の整数を入力して下さい。→);
// 5を入力
scanf(%d, &a);

printf(2つ目の整数を入力して下さい。→);
// 8を入力
scanf(%d, &b);

printf(%d + %d = %d ¥n, a, b, a+b);
}
[/code]

実行結果

5 + 8 = 13

scanf()関数より

[code lang=c]
// キーボードから入力された数字(文字コード)を10進数の数値データに変換し 指定されたアドレスに格納する。
scanf(%d, 格納先のアドレス);

// キーボードから入力された数字(文字コード)を1文字取り出して 指定されたアドレスに格納する。
scanf(%c, 格納先のアドレス);

// キーボードから入力された数字(文字コード)を10進数の実数値データに変換し 指定されたアドレスに格納する。
scanf(%f, 格納先のアドレス);

// キーボードから入力された文字を文字列として 指定されたアドレスから順番に1文字ずつに格納する。
scanf(%s, 格納先のアドレス);
[/code]


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

About Us

こんにちは!Webエンジニアとして働く傍ら、これまでに国内外を旅してきた経験を活かしてブログを運営しています。
このブログでは、【移動手段・宿選び・旅のコツ】など、実体験に基づいた信頼性の高い情報を発信しています。
特に「初めて行く場所で迷いたくない」「現地のリアルな事情を知りたい」という方に向けた記事が中心です。