C++ streambuf::gptr() 函式



C++ 的std::streambuf::gptr()函式用於返回指向流緩衝區輸入序列中當前位置的指標。此函式允許訪問正在讀取的資料,方便執行諸如窺視或操作輸入而不改變實際讀取位置的操作。

語法

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

char* gptr() const;

引數

它不接受任何引數。

返回值

它返回一個指向受控輸入序列的當前元素的指標(即“獲取指標”)。

異常

如果丟擲異常,流緩衝區不會發生任何變化。

資料競爭

它訪問流緩衝區物件。

示例 1

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

#include <iostream>
#include <streambuf>
class x: public std::streambuf {
   public: x(char * a, std::streamsize size) {
      this -> setg(a, a, a + size);
   }
   char * getgptr() {
      return this -> gptr();
   }
};
int main() {
   char y[] = "Welcome";
   x sb(y, sizeof(y));
   char * c = sb.getgptr();
   if (c != nullptr) {
      std::cout << "Result : " << * c << std::endl;
   } else {
      std::cout << "Null." << std::endl;
   }
   return 0;
}

輸出

以上程式碼的輸出如下:

Result : W
streambuf.htm
廣告

© . All rights reserved.