next up previous
Next: 制御文 Up: 計算機言語 I 第 3 Previous: インタラクティブなプログラム

取り込んだ文字列を変換する

上の関数 fgets() は, ファイルから入力した文字列をプログラムに 取り込むもので, 入力は文字列になります. 前節で見たように, 文字にはコードが割り当てられているので, 入力文字がすべて数字の場合, コード表の規則に従い 整数に変換する事が出来ます(問題8).

この講義では, 関数 sscanf() を使って変換する事とします(string scanf).

/* File name 3-4.c              */
#include <stdio.h>
#define BUFFSIZE  1024
main()
{
  char    mojiretsu[BUFFSIZE];  /* Input string. */
  int     m, n;

  printf("Input 2 integers. >> ");

  fgets(mojiretsu, BUFFSIZE, stdin);

  sscanf(mojiretsu, "%d %d", &m, &n);

  printf("m = %d, n = %d m+n = %d.\n", m, n, m+n);
}

関数 sscanf の最初の引き数は, 文字列の入っている配列の名前です. 2番目の引き数は取り出すデータの型を"で囲んで記述します. printf と大体同じです. double型のデータを受け取るときは, %f を使用します. 変換された整数を受け取る変数の前には & が必要です.



Next: 制御文 Up: 計算機言語 I 第 3 Previous: インタラクティブなプログラム