名前空間
変種
操作

fgetwc, getwc

From cppreference.com
< c‎ | io
 
 
ファイル入出力
型とオブジェクト
        
関数
ファイルアクセス
(C95)
非書式化入出力
fgetwcgetwc
(C95)(C95)
(C95)
(C95)(C95)
(C95)
(C95)

書式付き入力
直接入出力
書式付き出力
ファイルポジショニング
エラーハンドリング
ファイル操作
 
ヘッダー <wchar.h> で定義
wint_t fgetwc( FILE *stream );
(C95 以降)
wint_t getwc( FILE *stream );
(C95 以降)

指定された入力ストリームから次のワイド文字を読み取ります。getwc() はマクロとして実装される場合があり、stream を複数回評価する可能性があります。

目次

[編集] パラメータ

stream - ワイド文字を読み取る対象

[編集] 戻り値

ストリームからの次のワイド文字、または失敗時には WEOF

失敗がファイル終端条件によって引き起こされた場合、 additionally、stream 上の eof インジケータ(feof() を参照)を設定します。失敗がその他のエラーによって引き起こされた場合、 additionally、stream 上の error インジケータ(ferror() を参照)を設定します。

エンコーディングエラーが発生した場合、 additionally、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);
}

出力

кошка

[編集] 参考文献

  • C17標準 (ISO/IEC 9899:2018)
  • 7.29.3.1 The fgetwc function (p: 307-308)
  • 7.29.3.6 The getwc function (p: 309)
  • C11標準 (ISO/IEC 9899:2011)
  • 7.29.3.1 The fgetwc function (p: 421-422)
  • 7.29.3.6 The getwc function (p: 424)
  • C99標準 (ISO/IEC 9899:1999)
  • 7.24.3.1 The fgetwc function (p: 367)
  • 7.24.3.6 The getwc function (p: 369)

[編集] 関連項目

ファイルストリームから1文字取得する
(関数) [編集]
(C95)
ファイルストリームからワイド文字列を取得する
(関数) [編集]
ファイルストリームに1ワイド文字を書き込む
(関数) [編集]
ファイルストリームに1ワイド文字を戻す
(関数) [編集]
fgetwc の C++ ドキュメント
English 日本語 中文(简体) 中文(繁體)