_ungetch
, _ungetwch
, _ungetch_nolock
_ungetwch_nolock
Inserisce l'ultimo carattere letto dalla console.
Importante
Non è possibile usare questa API nelle applicazioni eseguite in Windows Runtime. Per altre informazioni, vedere Funzioni CRT non supportate nelle app della piattaforma UWP (Universal Windows Platform).
Sintassi
int _ungetch(
int c
);
wint_t _ungetwch(
wint_t c
);
int _ungetch_nolock(
int c
);
wint_t _ungetwch_nolock(
wint_t c
);
Parametri
c
Carattere da inserire.
Valore restituito
Entrambe le funzioni restituiscono il carattere c
in caso di esito positivo. Se si verifica un errore, _ungetch
restituisce un valore di EOF
e _ungetwch
restituisce WEOF
.
Osservazioni:
Queste funzioni inseriscono nuovamente il carattere c
nella console, causando c
la lettura del carattere successivo da _getch
o _getche
(o _getwch
o _getwche
). _ungetch
e _ungetwch
non riescono se vengono chiamati più volte prima della lettura successiva. L'argomento c
non può essere EOF
(o WEOF
).
Le versioni con il _nolock
suffisso sono identiche, ad eccezione del fatto che non sono protette da interferenze da altri thread. Possono essere più veloci perché non comportano il sovraccarico di blocco di altri thread. Utilizzare queste funzioni solo in contesti thread-safe come applicazioni a thread singolo o dove l'ambito chiamante già gestisce l'isolamento del thread.
Per impostazione predefinita, lo stato globale di questa funzione è limitato all'applicazione. Per modificare questo comportamento, vedere Stato globale in CRT.
Mapping di routine di testo generico
Routine TCHAR.H | _UNICODE e _MBCS non definito |
_MBCS definito |
_UNICODE definito |
---|---|---|---|
_ungettch |
_ungetch |
_ungetch |
_ungetwch |
_ungettch_nolock |
_ungetch_nolock |
_ungetch_nolock |
_ungetwch_nolock |
Requisiti
Ciclo | Intestazione obbligatoria |
---|---|
_ungetch , _ungetch_nolock |
<conio.h> |
_ungetwch , _ungetwch_nolock |
<conio.h> o <wchar.h> |
Per altre informazioni sulla compatibilità, vedere Compatibility (Compatibilità).
Esempio
// 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
Vedi anche
I/O della console e della porta
_cscanf
, _cscanf_l
, _cwscanf
_cwscanf_l
_getch
, _getwch