fwscanf | Programming Place Plus C言語編 標準ライブラリのリファレンス

トップページC言語編標準ライブラリのリファレンス(名前順)

トップページC言語編標準ライブラリのリファレンス(ヘッダ別)


fwscanf関数

概要

任意のストリームから、変換指定を伴ったワイド文字列を受け取る。

ヘッダ

wchar.h

形式

int fwscanf(FILE* restrict stream, const wchar_t* restrict format, …);

引数

stream

対象のストリーム。

format

変換指定を伴った文字列。

入力された値を受け取るメモリアドレスの指定。format に含まれている変換指定子に対応した個数と型であること。

戻り値

変換を1つも行えないまま入力エラーが起きた場合は、EOF を返す(WEOF ではない)。その他の場合には、正常に代入を行えた個数を返す。

詳細

結果を任意のストリームから受け取ることを除き、scanf関数と同様であり、同じ機能を持つ。

注意

必要な個数の実引数が指定されていない場合の動作は未定義。余分に指定されている場合には、評価は行われるが、fwscanf関数としては無視する。

使用例

#include <stdio.h>
#include <stdlib.h>
#include <wchar.h>

int main(void)
{
    FILE* fp = fopen( "test.txt", "r" );
    if( fp == NULL ){
        exit( EXIT_FAILURE );
    }

    int num;
    char str[10];
    double f;

    fwscanf( fp, L"%d %s %lf", &num, str, &f );
    printf( "%d %s %f\n", num, str, f );

    if( fclose( fp ) == EOF ){
        fputs( "ファイルクローズに失敗しました。\n", stderr );
        exit( EXIT_FAILURE );
    }
}

実行結果:

100 abc 2.500000

関連

マルチバイト文字版は fscanf関数である。
任意のストリームに対して同様の変換指定を行い入力を受け取るには、wscanf関数を使う。対象が文字列の場合は、swscanf関数が使える。
引数に … ではなく、va_list を用いたバージョンとして、vwscanf関数がある。

解説章


参考リンク


更新履歴

’2018/4/8 全体的に文章を見直し修正。

’2018/2/1 C言語編全体で表記を統一するため、「フォーマット指定」を「変換指定」に改めた。

’2018/1/22 新規作成。



標準ライブラリのリファレンス(名前順)のトップページへ

標準ライブラリのリファレンス(ヘッダ別)のトップページへ

C言語編のトップページへ

Programming Place Plus のトップページへ


先頭へ戻る