88to Life Book…@豊かな週末ライフを過ごすぞ!!

平日はフルタイム仕事なので、週末を豊かにすべく株主優待、ふるさと納税など楽しく過ごすことを目的とした30代Webエンジニアのブログ

C言語:scanf()関数

      2016/05/21

scanf()関数

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

構文

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

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

int age;
scanf(年齢を入力して下さい。→ %d \n, &age);

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

printf(年齢を入力して下さい。→);
scanf(%d, &age);

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

サンプル

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

scnaf()の働き

int in_data;
~
scanf(%d, &in_data);

[/code]

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

実行結果

5 + 8 = 13

scanf()関数より

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

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

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

// キーボードから入力された文字を文字列として 指定されたアドレスから順番に1文字ずつに格納する。
scanf(%s, 格納先のアドレス);
The following two tabs change content below.
渋谷でWebエンジニアをしているHayatoです。 趣味はプログラミング、海外旅行。 カフェでTitanium mobileを使ってスマホアプリを作ってます。 海外旅行は年1回で、に行きました。国内旅行は2〜3ヶ月に1回のペース。 直近は、3月にタイ(バンコク)・カンボジア(シェムリアップ)へ行きました。 旅の思い出アルバム、投資運用報告が中心のブログ構成です。

 - C言語 , ,