다음을 통해 공유


_ungetch, _ungetwch, _ungetch_nolock, _ungetwch_nolock

콘솔에서 읽을 수 있는 마지막 문자를 다시 푸시합니다.

중요

이 API는 Windows 런타임에서 실행되는 응용 프로그램에서 사용할 수 없습니다.자세한 내용은 /ZW에서 지원하지 않는 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 를 _getch 또는 _getche 인 읽어질 다음 문자에 의해 야기됩니다. (또는_getwch 또는_getwche). _ungetch 및 _ungetwch 은 실패합니다. 읽기 전에 한 번 이상 호출 하면 오류가 발생 합니다. c 인수는 EOF (또는 WEOF)입니다.

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

제네릭 텍스트 라우팅 매핑

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 );
}
  

참고 항목

참조

콘솔 및 포트 I/O

_cscanf, _cscanf_l, _cwscanf, _cwscanf_l

_getch, _getwch