fgetwc
提供: cppreference.com
<tbody>
</tbody>
<tbody class="t-dcl-rev ">
</tbody><tbody>
</tbody>
| ヘッダ <wchar.h> で定義
|
||
wint_t fgetwc( FILE *stream ); |
(C95以上) | |
wint_t getwc( FILE *stream ); |
(C95以上) | |
指定された入力ストリームから次のワイド文字を読み込みます。 getwc() はマクロとして実装されているかもしれず、 stream を2回以上評価するかもしれません。
引数
| stream | - | ワイド文字の読み込み元 |
戻り値
ストリームの次のワイド文字。 失敗した場合は WEOF。
失敗がファイル終端に達したことに起因する場合は、さらに stream のファイル終端指示子 (feof() を参照) をセットします。 失敗が何らかの他のエラーに起因する場合は、 stream のエラー指示子 (ferror() を参照) をセットします。
エンコーディングエラーが発生した場合は、さらに errno を EILSEQ に設定します。
例
Run this code
#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)
関連項目
| ファイルストリームから文字を取得します (関数) | |
(C95) |
ファイルストリームからワイド文字列を取得します (関数) |
(C95) |
ファイルストリームにワイド文字を書き込みます (関数) |
(C95) |
ファイルストリームにワイド文字を戻します (関数) |
fgetwc の C++リファレンス
|