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]

The following two tabs change content below.
渋谷でWebエンジニアをしています。 株主優待目的で日本株からはじめ、投資信託・米国株の流れで投資しています。 最近は懸賞もハマってます(笑) 旅の思い出ログ、投資運用ログ、株主優待ログが中心のブログです。 どうぞ、よろしくお願いします!

コメントを残す

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

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

About Us

Sed gravida lorem eget neque facilisis, sed fringilla nisl eleifend. Nunc finibus pellentesque nisi, at is ipsum ultricies et. Proin at est accumsan tellus.