다음을 통해 공유


ungetc, ungetwc

다시 문자 스트림에 푸시합니다.

int ungetc(
   int c,
   FILE *stream 
);
wint_t ungetwc(
   wint_t c,
   FILE *stream 
);

매개 변수

  • c
    푸시 문자입니다.

  • stream
    포인터를 FILE 구조체입니다.

반환 값

성공적으로 각이 함수는 문자 인수를 반환 하면 c*.* 경우 c back 없습니다 또는 입력된 스트림에서 문자를 읽을 경우 변경 되지 않습니다 및 ungetc 반환 EOF. ungetwcreturns WEOF.경우 stream 는 NULL에 설명 된 대로 잘못 된 매개 변수 처리기를 호출 매개 변수 유효성 검사.실행을 계속 하려면 허용 되는 경우 EOF 또는 WEOF 반환 되 고 errno 로 설정 된 EINVAL.

이러한 문제 및 기타 오류 코드에 대 한 내용은 _sys_nerr, _doserrno, errno, _sys_errlist,.

설명

ungetc 함수는 문자를 푸시합니다 c 되돌려 놓은 stream 파일의 끝 표시기를 지웁니다.스트림 읽기용으로 열려 있어야 합니다.이후 읽기 작업을 stream 시작 c*.* Push 하려고 EOF 에 스트림을 사용 하 여 ungetc 는 무시 됩니다.

문자가 배치 하 여 스트림 ungetc 경우 삭제 될 수 있습니다 fflush, fseek, fsetpos, 또는 rewind 스트림에서 문자를 읽기 전에 호출 됩니다.파일 위치 표시기 문자 다시 푸시된 되기 전의 값을 갖습니다.스트림에 해당 외부 저장 장치는 변경 되지 않습니다.성공적인 ungetc 호출 하는 텍스트 스트림 파일 위치 표시기에 대해 지정 되지 않습니다 때까지 모든 푸시 백 문자를 읽거나 삭제 합니다.각 성공적인 ungetc 이진 스트림 파일 위치 표시기에 대해 호출 되어 감소. 값 호출 후 0에 대 한 호출 하기 전에 값이 있으면 정의 되지 않습니다.

결과 예측할 수 없는 경우 ungetc 읽기 또는 두 호출 사이의 파일 위치 지정 작업 없이 두 번 호출 됩니다.호출 후에 fscanf, 호출을 ungetc 다른 읽기 작업을 하지 않으면 실패할 수 있습니다 (같은 getc) 수행 되었습니다.이 때문에 fscanf 자신을 호출 ungetc.

ungetwc와이드 문자 버전인 ungetc.그러나 매일 성공 ungetwc 호출을 텍스트 또는 이진 스트림, 파일 위치 표시기의 값에 대해 지정 되지 않습니다 모든 푸시 백 문자를 읽거나 삭제 될 때까지.

다음이 함수는 스레드로부터 안전 하 고 실행 하는 동안 중요 한 데이터를 잠글.비잠금 버전에 대 한 _ungetc_nolock, _ungetwc_nolock.

일반 텍스트 루틴 매핑

TCHAR입니다.H 루틴

_UNICODE 및 _Mbcs가 정의 되어 있지 않습니다

_Mbcs가 정의

_Unicode가 정의

_ungettc

ungetc

ungetc

ungetwc

요구 사항

루틴

필수 헤더

ungetc

<stdio.h>

ungetwc

<stdio.h> 또는 <wchar.h>

콘솔에서 지원 되지 않습니다 Windows 스토어 응용 프로그램입니다.콘솔에 연결 된 표준 스트림 핸들 stdin, stdout, 및 stderr, C 런타임 함수를 사용 하기 전에 이동 해야 Windows 스토어 응용 프로그램입니다.추가 호환성 정보를 참조 하십시오. 호환성 소개에서 합니다.

예제

// crt_ungetc.c
// This program first converts a character
// representation of an unsigned integer to an integer. If
// the program encounters a character that is not a digit,
// the program uses ungetc to replace it in the  stream.
//

#include <stdio.h>
#include <ctype.h>

int main( void )
{
   int ch;
   int result = 0;

   // Read in and convert number:
   while( ((ch = getchar()) != EOF) && isdigit( ch ) )
      result = result * 10 + ch - '0';    // Use digit.
   if( ch != EOF )
      ungetc( ch, stdin );                // Put nondigit back.
   printf( "Number = %d\nNext character in stream = '%c'", 
            result, getchar() );
}
  

해당 .NET Framework 항목

해당 사항 없음. 표준 C 함수를 호출 하려면 PInvoke. 자세한 내용은 플랫폼 호출 예제.

참고 항목

참조

스트림 I/O

getc, getwc

putc, putwc