Cpp-standard-library-cpp-stringbuf-sungetc

提供:Dev Guides
移動先:案内検索

C ++ streambuf-sungetc

説明

現在の位置を減らすために使用され、制御された入力シーケンスの現在の位置インジケータを1つ前の文字に移動して、その位置の文字を次の入力操作で再び使用できるようにします。

宣言

以下は、std
streambuf :: sungetcの宣言です。
int sungetc();

パラメーター

none

戻り値

制御入力シーケンスの新しい現在の文字の値を、int型の値として返します。

例外

基本的な保証-例外がスローされた場合、ストリームバッファは有効な状態です。

データの競合

ストリームバッファオブジェクトを変更します。

以下の例では、std
streambuf :: sungetcについて説明しています。
#include <iostream>
#include <cstdio>

int main () {
   char ch;
   std::streambuf * pbuf = std::cin.rdbuf();

   std::cout << "Please, enter some letters and then a number: ";
   do {
      ch = pbuf->sbumpc();

      if ( (ch>='0') && (ch <='9') ) {
         pbuf->sungetc ();
         long n;
         std::cin >> n;
         std::cout << "You entered number " << n << '\n';
         break;
      }
   } while ( ch != EOF );

   return 0;
}

上記のプログラムをコンパイルして実行すると、次の結果が生成されます-

Please, enter some letters and then a number: