>> C言語関数一覧トップに戻る

C言語 fscanf 使い方

今回はC言語のfscanfの使い方について説明します。

fscanf関数は書式指定をしてファイルから値を読み込み、バッファに格納します。

■書式
int fscanf(FILE *fp, 書式指定文字列, 格納可変個引数);

書式には主に以下のルールがあります。
書式指定文字 意味 使われる型
%c 1文字受け取る 文字型
%d 10進数で受け取る int型などの整数型
%f 浮動小数点で受け取る float等の浮動小数点型
%s 文字列で受け取る 文字列
%x 16進数で受け取る int型などの整数型
%o 8進数で受け取る int型などの整数型
第2引数以降に指定する引数は、その変換指定文字を書いた順番に変数のポインタを並べて指定します。
第1引数にはファイルポインタを指定します。

scanfのファイル版と思ってください。
■サンプルコード
#include <stdio.h>

int main(void)
{
	char ch[50];
	int num;
	FILE *fp;

	fp = fopen("aiueo.txt","r");

	//書式指定で読み込み
	fscanf(fp,"%d%s",&num,ch);

	//文字列表示
	puts(ch);

	//数字表示
	printf("%d\n",num);

	fclose(fp);
	
	return 0;
}
■実行結果
aiueo
123


aiueo.txtには「123aiueo」という文字列が書き込まれています。
それを書式指定で数字と文字列として読み込んでいます。
123はnumに格納され、aiueoはchに格納されています。
読み込む値によって書式指定文字を変えてください。

scanfと同様にバッファ以上の値を読み込んでしまってオーバーフローする可能性があるので注意してください。
詳細はscanfのページを確認してください。
>> 【C言語 fread 使い方】に進む
>> C言語関数一覧トップに戻る