C++ streambuf::sputbackc() 函式



C++ 的std::streambuf::sputbackc()函式用於將字元放回到流緩衝區的輸入序列中。此函式通常用於自定義流操作,當讀取一個字元但需要將其取消讀取時。

此函式在成功時返回被放回的字元,如果操作失敗則返回traits::eof()。

語法

以下是std::streambuf::sputbackc()函式的語法。

int_type sputbackc (char_type c);

引數

  • c − 要放回的字元。

返回值

此函式返回放回的字元的值,其型別為int。

異常

如果丟擲異常,則流緩衝區處於有效狀態。

資料競爭

它修改流緩衝區物件。

示例1

在下面的示例中,我們將考慮sputbackc()函式的基本用法。

#include <iostream>
#include <sstream>
int main() {
   std::stringbuf a("Welcome");
   char b = a.sbumpc();
   std::cout << "First character: " << b << std::endl;
   a.sputbackc(b);
   char c = a.sbumpc();
   std::cout << "Character after putback: " << c << std::endl;
   return 0;
}

輸出

以上程式碼的輸出如下:

First character: W
Character after putback: W

示例2

考慮以下示例,我們將使用sputbackc()函式替換第一個字元。

#include <iostream>
#include <sstream>
int main() {
   std::stringbuf x("Hi");
   char y = x.sbumpc();
   std::cout << "First character: " << y << std::endl;
   x.sputbackc('A');
   char z = x.sbumpc();
   std::cout << "Character after putback: " << z << std::endl;
   return 0;
}

輸出

以下是以上程式碼的輸出:

First character: H
Character after putback: A
streambuf.htm
廣告
© . All rights reserved.