名前空間
変種
操作

fgetwc

提供: cppreference.com
< c‎ | io
 
 
ファイル入出力
関数
ファイルアクセス
直接入出力
書式なし入出力
(C11以前)(C11およびそれ以降)
fgetwcgetwc
(C95)(C95)
(C95)
(C95)(C95)
(C95)
(C95)
書式付き入力
書式付き出力
ファイル位置操作
エラー処理
ファイルに対する操作
 
ヘッダ <wchar.h> で定義
wint_t fgetwc( FILE *stream );
(C95およびそれ以降)
wint_t getwc( FILE *stream );
(C95およびそれ以降)

指定された入力ストリームから次のワイド文字を読み込みます。 getwc() はマクロとして実装されているかもしれず、 stream を2回以上評価するかもしれません。

目次

[編集] 引数

stream - ワイド文字の読み込み元

[編集] 戻り値

ストリームの次のワイド文字。 失敗した場合は WEOF

失敗がファイル終端に達したことに起因する場合は、さらに streamファイル終端指示子 (feof() を参照) をセットします。 失敗が何らかの他のエラーに起因する場合は、 streamエラー指示子 (ferror() を参照) をセットします。

エンコーディングエラーが発生した場合は、さらに errnoEILSEQ に設定します。

[編集]

#include <stdio.h>
#include <stdlib.h>
#include <wchar.h>
#include <errno.h>
#include <locale.h>
 
int main(void)
{
    setlocale(LC_ALL, "en_US.utf8");
    FILE *fp = fopen("fgetwc.dat", "w");
    if(!fp) {
        perror("Can't open file for writing");
        return EXIT_FAILURE;
    }
    fputs("кошка\n", fp);
    fclose(fp);
 
    fp = fopen("fgetwc.dat", "r");
    if(!fp) {
        perror("Can't open file for reading");
        return EXIT_FAILURE;
    }
    wint_t wc;
    errno = 0;
    while ((wc = fgetwc(fp)) != WEOF)
        putwchar(wc);
 
    if (ferror(fp)) {
        if (errno == EILSEQ)
            puts("Character encoding error while reading.");
        else
            puts("I/O error when reading");
    } else if (feof(fp))
        puts("End of file reached successfully");
 
    fclose(fp);
}

出力:

кошка

[編集] 参考文献

  • C11 standard (ISO/IEC 9899:2011):
  • 7.29.3.1 The fgetwc function (p: 421-422)
  • 7.29.3.6 The getwc function (p: 424)
  • C99 standard (ISO/IEC 9899:1999):
  • 7.24.3.1 The fgetwc function (p: 367)
  • 7.24.3.6 The getwc function (p: 369)

[編集] 関連項目

ファイルストリームから文字を取得します
(関数) [edit]
(C95)
ファイルストリームからワイド文字列を取得します
(関数) [edit]
ファイルストリームにワイド文字を書き込みます
(関数) [edit]
ファイルストリームにワイド文字を戻します
(関数) [edit]