Sdílet prostřednictvím


_ungetch, _ungetwch, _ungetch_nolock, _ungetwch_nolock

Předá zpět poslední znak číst z konzoly.

Důležitá poznámkaDůležité

Toto rozhraní API nelze použít v aplikacích, které jsou spuštěny v systému Windows Runtime.Další informace naleznete v tématu CRT funkce nejsou podporovány s /ZW.

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

Parametry

  • c
    Znak doručoval.

Vrácená hodnota

Obě funkce vrátí znak, c v případě úspěchu.If there is an error, _ungetch returns a value of EOF and _ungetwchreturnsWEOF.

Poznámky

Tyto funkce push znak c zpět do konzoly, příčinou c se následující znak číst _getch nebo _getche (nebo _getwch nebo_getwche)._ungetcha _ungetwch nezdaří, pokud jsou více než jednou volán před další čtení.The c argument may not be EOF (or WEOF).

Verze s _nolock přípony jsou shodné s tím rozdílem, že nejsou chráněny před rušení jiných podprocesů.Protože nevznikají režie uzamčení jiné vlákna mohou být rychlejší.Tyto funkce lze používejte pouze v kontextu vláknově bezpečné jako single-threaded aplikací nebo pokud volající obor již zpracovává vlákna izolace.

Mapování rutiny obecného textu

TCHAR.Byla zahájena rutina h

_UNICODE & _MBCS není definováno

_MBCS, definice

_UNICODE definována

_ungettch

_ungetch

_ungetch

_ungetwch

_ungettch_nolock

_ungetch_nolock

_ungetch_nolock

_ungetwch_nolock

Požadavky

Byla zahájena rutina

Požadované záhlaví

_ungetch, _ungetch_nolock

<conio.h>

_ungetwch, _ungetwch_nolock

<conio.h> nebo <wchar.h>

Další informace o kompatibilitě, viz Compatibility v úvodu.

Příklad

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

Viz také

Referenční dokumentace

I/O konzoly a Port

_cscanf, _cscanf_l, _cwscanf, _cwscanf_l

_getch _getwch