sscanf


目次に戻る


今日紹介する関数は、文字列の中に埋め込まれた整数、実数、文字列のデータを別の 変数に代入するsscanf関数を紹介します。
 
sscanfは
char *text="100 こんにちは 5.0";
int i;
char buff[256];
double d;

sscanf(text,"%d %s %lf",&i,buff,&d);

printf("i = %d\nbuff=%s\nd=%lf\n",i,buff,d);

というように使います。%dは整数、%sは文字列、%lfはdouble型の実数をtext文字列の中か ら得てi,buff,dという変数に代入しています。
 
なかなか便利な関数で、テキストファイルの内容をプログラムに読み込む時等に重 宝します。
テキストファイルからデータを読み込む例
FILE *fp;
char buff[256];
int data;

fp = fopen( "test,txt","rt" );

fgets( buff , 255 , fp );    /* ファイル"test.txt"から一行(最大255 文字)分の文字列を読み込み、buffに代入する */

sscanf( buff , "%d",&data );

fclose( fp );

sscanfの親戚にfscanfという関数がありますが、エラー処理がうまくできない等の理由で 上記のようにfgetsとsscanfをセットにして使う事が多いようです。少なくとも私はそうしてま す。


目次に戻る