_ungetch, _ungetwch, _ungetch_nolock, _ungetwch_nolock

콘솔에서 읽은 마지막 문자를 다시 푸시합니다.

Important

이 API는 Windows 런타임에서 실행되는 애플리케이션에서 사용할 수 없습니다. 자세한 내용은 유니버설 Windows 플랫폼 앱에서 지원되지 않는 CRT 함수를 참조하세요.

구문

int _ungetch(
   int c
);
wint_t _ungetwch(
   wint_t c
);
int _ungetch_nolock(
   int c
);
wint_t _ungetwch_nolock(
   wint_t c
);

매개 변수

c
푸시할 문자 수입니다.

반환 값

두 함수는 모두 정상적으로 실행되는 경우 c 문자를 반환합니다. 오류가 _ungetch 있는 경우 값을 EOF 반환하고 _ungetwch 반환합니다 WEOF.

설명

이러한 함수는 문자를 c 콘솔로 다시 푸시하여 c 다음 문자가 읽거나 _getche (또는 _getwch_getwche) 읽 _getch 게 합니다. _ungetch 다음 _ungetwch 읽기 전에 두 번 이상 호출되면 실패합니다. c 인수는 EOF 또는 WEOF일 수 없습니다.

접미사가 있는 _nolock 버전은 다른 스레드의 간섭으로부터 보호되지 않는다는 점을 제외하고 동일합니다. 다른 스레드를 잠그는 오버헤드가 발생하지 않으므로 속도가 더 빠를 수 있습니다. 단일 스레드 애플리케이션과 같은 스레드로부터 안전한 컨텍스트 또는 이미 스레드 격리를 처리한 호출 범위에서만 이러한 함수를 사용합니다.

기본적으로 이 함수의 전역 상태는 애플리케이션으로 범위가 지정됩니다. 이 동작을 변경하려면 CRT의 전역 상태를 참조하세요.

일반 텍스트 루틴 매핑

TCHAR.H 루틴 _UNICODE 정의 _MBCS 되지 않음 _MBCS 정의 _UNICODE 정의
_ungettch _ungetch _ungetch _ungetwch
_ungettch_nolock _ungetch_nolock _ungetch_nolock _ungetwch_nolock

요구 사항

루틴에서 반환된 값 필수 헤더
_ungetch, _ungetch_nolock <conio.h>
_ungetwch, _ungetwch_nolock <conio.h> 또는 <wchar.h>

호환성에 대한 자세한 내용은 호환성을 참조하세요.

예시

// crt_ungetch.c
// compile with: /c
// In this program, a white-space delimited
// token is read from the keyboard. When the program
// encounters a delimiter, it uses _ungetch to replace
// the character in the keyboard buffer.
//

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

int main( void )
{
   char buffer[100];
   int count = 0;
   int ch;

   ch = _getche();
   while( isspace( ch ) )      // Skip preceding white space.
      ch = _getche();
   while( count < 99 )         // Gather token.
   {
      if( isspace( ch ) )      // End of token.
         break;
      buffer[count++] = (char)ch;
      ch = _getche();
   }
   _ungetch( ch );            // Put back delimiter.
   buffer[count] = '\0';      // Null terminate the token.
   printf( "\ntoken = %s\n", buffer );
}

Whitetoken = White

참고 항목

콘솔 및 포트 I/O
_cscanf, _cscanf_l, _cwscanf, _cwscanf_l
_getch, _getwch