Namespaces
Variants

fgetwc, getwc

cppreference.net에서
 
 
파일 입출력
타입과 객체
        
함수
파일 접근
(C95)
서식 없는 입출력
(C95)(C95)
(C95)
(C95)(C95)
(C95)
(C95)

서식 있는 입력
 
(C95)<wchar.h>
wint_t fgetwc( FILE* stream );
정의된 헤더:
wint_t getwc( FILE* stream );
(C95부터)

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

매개변수

stream - 와이드 문자를 읽을 입력 스트림

반환값

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

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

인코딩 오류가 발생한 경우, 추가로 errno를 EILSEQ로 설정합니다.

예제

#include <errno.h>
#include <locale.h>
#include <stdio.h>
#include <stdlib.h>
#include <wchar.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);
}

가능한 출력:

кот

참조

  • C23 표준 (ISO/IEC 9899:2024):
  • 7.29.3.1 fgetwc 함수 (p: TBD)
  • 7.29.3.6 getwc 함수 (p: TBD)
  • 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)
파일 스트림에서 와이드 문자열을 얻습니다
(함수)
파일 스트림에 와이드 문자를 씁니다
(함수)
와이드 문자를 파일 스트림에 다시 넣습니다
(함수)
C++ 문서에 대한fgetwc