C言語の標準関数を目的別に調べることができる辞典

ホーム > C 標準関数逆引き辞典 > ファイル > ファイルから書式付きで文字列や数値を読み込む

C 標準関数逆引き辞典

:: reverse dictionary ::

ファイル

※ソースファイルについて


ファイルから書式付きで文字列や数値を読み込む

ファイルから書式付きで文字列や数値を読み込むには、fscanf 関数を使います。

≪宣言≫

#include <stdio.h>
#include <stdlib.h>
FILE *fp;
char ch;
char str[256];
int num;
float flt;

fp = fopen("sample.txt", "r");
if (fp == NULL)
{
  printf("sample.txt を開けませんでした。\n");
  return EXIT_FAILURE;
}

/* 読み込み */
fscanf(fp, "%c%s%d%f", &ch, str, &num, &flt);

fclose(fp);

ソースファイル

sample.txt の内容が

C プログラム
123 0.456789

となっている場合、ch'C'str"プログラム"num123flt0.456789 になります。


ワイド文字列の場合は fwscanf 関数を使います。

≪宣言≫

#include <locale.h>
#include <stdio.h>
#include <stdlib.h>
FILE *fp;
wchar_t ch;
wchar_t str[256];
int num;
float flt;

setlocale(LC_ALL, "ja");  /* ロケールを日本語に設定 */

fp = fopen("sample.txt", "r");
if (fp == NULL)
{
  wprintf(L"sample.txt を開けませんでした。\n");
  return EXIT_FAILURE;
}

/* 読み込み */
fwscanf(fp, L"%c%s%d%f", &ch, str, &num, &flt);

fclose(fp);

ソースファイル

sample.txt の内容が

C プログラム
123 0.456789

となっている場合、ch'C'str"プログラム"num123flt0.456789 になります。

▼ 関数

int fscanf(FILE *i, const char *f, v1, v2, ..., vn)
int fwscanf(FILE *i, const wchar_t *f, v1, v2, ..., vn)

書式 f に従って、入力ストリーム i から値を読み込みます。 読み込んだ値を v1vn の変数に格納します。

v1vn には、対応する型の変数へのポインタを指定します。

書式 f の中に指定する %s%d などのパラメータが、読み込む値になります。 パラメータは、左から順に v1vn の変数に対応します。

%s%d などの主なパラメータは、次のとおりです。

パラメータ 対応する値
%c 文字
%s 文字列
%d 10進数
%o 8進数
%x 16進数
%f 小数点数(float
%e 浮動小数点数(float

なお、値の区切りは、半角スペース、タブ、改行などの空白文字です。
連続した空白文字は、一つの区切りになります。

●引数

i … 入力ストリームのポインタ
f … 書式
v1vn … 読み込んだ値を格納する変数のポインタ

●戻り値

・読み込み成功 … 読み込んだ値を格納した変数の個数
・読み込み失敗 … fscanfEOFfwscanfWEOF
・読み込む値がない … fscanfEOFfwscanfWEOF

注目キーワード ベスト5

  1. セキュリティ
  2. ホスティング
  3. レンタルサーバ
  4. ファイル復旧
  5. ハードディスク修復

ファイル - file -


ホーム > C 標準関数逆引き辞典 > ファイル > ファイルから書式付きで文字列や数値を読み込む

Copyright (C) 2005-2007 Noto Watabe. All rights reserved.
e-mail:wmh@always-pg.com