次の方法で共有


_ungetch_ungetwch_ungetch_nolock_ungetwch_nolock

コンソールから読み取った最後の文字をプッシュします。

重要

この 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 を返します。 エラーが発生した場合、 _ungetchEOF の値を返し、 _ungetwchWEOFを返します。

解説

これらの関数は、文字 c をコンソールにプッシュし戻し、 c_getch または _getche (または _getwch または _getwche) によって読み取られる次の文字になります。 _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>

互換性の詳細については、「 Compatibility」を参照してください。

// 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

関連項目

コンソール入出力とポート入出力
_cscanf_cscanf_l_cwscanf_cwscanf_l
_getch, _getwch