Namespaces
Variants

fgetwc, getwc

From cppreference.net
< c ‎ | io
헤더 파일에 정의됨 <wchar.h>
wint_t fgetwc ( FILE * stream ) ;
(C95 이후)
wint_t getwc ( FILE * stream ) ;
(C95 이후)

주어진 입력 스트림에서 다음 와이드 문자를 읽습니다. getwc ( ) 는 매크로로 구현될 수 있으며 stream 을 여러 번 평가할 수 있습니다.

목차

매개변수

stream - 와이드 문자를 읽어올 스트림

반환값

스트림에서 읽은 다음 와이드 문자 또는 WEOF (실패 시).

실패가 파일 끝 조건에 의해 발생한 경우, 추가적으로 eof 표시자를 설정합니다 ( feof() 참조). stream 에 대해. 실패가 다른 오류에 의해 발생한 경우, error 표시자를 설정합니다 ( ferror() 참조). stream 에 대해.

인코딩 오류가 발생한 경우, 추가로 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 함수 (p: 307-308)
  • 7.29.3.6 getwc 함수 (p: 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 함수 (p: 367)
  • 7.24.3.6 getwc 함수 (p: 369)

참고 항목

파일 스트림에서 문자를 읽어옴
(함수)
(C95)
파일 스트림에서 와이드 문자열을 읽어옴
(함수)
파일 스트림에 와이드 문자를 씀
(함수)
(C95)
파일 스트림에 와이드 문자를 다시 넣음
(함수)