fgetwc, getwc
|
定义于头文件
<wchar.h>
|
||
|
wint_t fgetwc
(
FILE
*
stream
)
;
|
(C95 起) | |
|
wint_t getwc
(
FILE
*
stream
)
;
|
(C95 起) | |
从给定输入流读取下一个宽字符。
getwc
(
)
可能作为宏实现,并可能多次计算
stream
。
目录 |
参数
| stream | - | 用于读取宽字符的流 |
返回值
从流中读取下一个宽字符,失败时返回 WEOF 。
若失败由文件结束条件引起,则额外设置
stream
上的
eof
指示符(参见
feof()
)。若失败由其他错误引起,则设置
stream
上的
error
指示符(参见
ferror()
)。
如果发生编码错误,则额外将
errno
设置为
EILSEQ
。
示例
#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 fgetwc 函数 (页: 307-308)
-
- 7.29.3.6 getwc 函数 (页: 309)
- C11标准 (ISO/IEC 9899:2011):
-
- 7.29.3.1 fgetwc函数 (p: 421-422)
-
- 7.29.3.6 getwc函数 (p: 424)
- C99标准(ISO/IEC 9899:1999):
-
- 7.24.3.1 fgetwc函数(页码:367)
-
- 7.24.3.6 getwc函数(页码:369)
参见
|
从文件流获取一个字符
(函数) |
|
|
(C95)
|
从文件流获取宽字符串
(函数) |
|
(C95)
|
向文件流写入宽字符
(函数) |
|
(C95)
|
将宽字符放回文件流
(函数) |
|
C++ 文档
for
fgetwc
|
|